Использовать какой-нибудь PartialView с учетом действия поста? - PullRequest
0 голосов
/ 03 декабря 2018

Существует представление для регистрации, которое имеет два PartialView на вкладке jquery (зарегистрироваться по телефону или зарегистрироваться по электронной почте).

enter image description here

Меня вызвалив родительском представлении с кодами ниже:

<div id="tabs" class="tabs">
    <nav>
        <ul>
            <li><a href="#section-1" class="fa fa-mobile"><span>موبایل</span></a></li>
            <li><a href="#section-2" class="fa fa-envelope"><span>ایمیل</span></a></li>
        </ul>
    </nav>
    <div class="content">
        <section id="section-1">
            @Html.Partial("_MobileRegister", new S6.ViewModels.MobileRegister())
        </section>
        <section id="section-2">
            @Html.Partial("_EmailRegister" , new S6.ViewModels.EmailRegister())
        </section>
    </div>
</div>

контроллер и действия:

public ActionResult Register()
{
    return View();
}

public PartialViewResult _MobileRegister()
{
    return PartialView("_MobileRegister");
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult MobileRegister(MobileRegister model)
{
     if (ModelState.IsValid)
     {
     }
     return PartialView("~/Views/Account/_MobileRegister.cshtml", model);
}

Теперь, когда данные отправляются в действие, если ModelState недействительно или по какой-либо причинечто вызывает return PartialView, PartialView отображается на отдельной странице.

enter image description here

Что не так?

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

Если вы хотите визуализировать «Частичные представления» в другом представлении, вы должны использовать Ajax вместо прямой публикации.Ajax.BeginForm - хорошее решение.

0 голосов
/ 07 декабря 2018
0 голосов
/ 03 декабря 2018

Если вы ничего не вернете в

if (ModelState.IsValid)
     {
     }

, ваша функция всегда будет возвращать PartialView.Добавьте оператор возврата в этом случае.

...