在视图中使用一些带有 post 操作的 PartialView?
Use some PartialView with post action in view?
在 jquery 选项卡中有一个注册视图有两个 PartialView(通过 phone 注册或通过电子邮件注册)。
我在父视图中被称为具有以下代码的那些人:
<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);
}
现在,当数据 post 生效时,如果 ModelState
无效或由于任何原因导致 return PartialView
被调用,PartialView 将显示在单独的页面中。
怎么了?
如果您 return
中没有任何内容
if (ModelState.IsValid)
{
}
您的函数将始终return PartialView。在 if.
中添加 return 语句
如果你想在另一个视图上渲染 "Partial Views",你必须使用 Ajax 而不是直接 post。 Ajax.BeginForm
是一个很好的解决方案。
我在这里找到了一个完整的例子:
https://www.pluralsight.com/guides/asp-net-mvc-using-ajax-helpers-with-razor-partial-views
在 jquery 选项卡中有一个注册视图有两个 PartialView(通过 phone 注册或通过电子邮件注册)。
我在父视图中被称为具有以下代码的那些人:
<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);
}
现在,当数据 post 生效时,如果 ModelState
无效或由于任何原因导致 return PartialView
被调用,PartialView 将显示在单独的页面中。
怎么了?
如果您 return
中没有任何内容if (ModelState.IsValid)
{
}
您的函数将始终return PartialView。在 if.
中添加 return 语句如果你想在另一个视图上渲染 "Partial Views",你必须使用 Ajax 而不是直接 post。 Ajax.BeginForm
是一个很好的解决方案。
我在这里找到了一个完整的例子:
https://www.pluralsight.com/guides/asp-net-mvc-using-ajax-helpers-with-razor-partial-views