在jquery选项卡中有一个注册视图,其中有两个PartialView(通过电话注册或通过电子邮件注册)。
我在“父视图”中被称为以下代码:
<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将显示在单独的页面中。
怎么了?
答案 0 :(得分:2)
如果您没有在
中返回任何内容if (ModelState.IsValid)
{
}
您的功能将始终返回PartialView。在该if中添加return语句。
答案 1 :(得分:1)
如果要在其他视图上呈现“部分视图”,则必须使用Ajax代替直接发布。 Ajax.BeginForm
是一个很好的解决方案。
答案 2 :(得分:0)