【发布时间】:2014-04-03 20:05:24
【问题描述】:
我有一个包含两个部分视图的视图:
Both.cshtml
<div id="first">
@Html.Partial("~/Views/Example/_FirstForm.cshtml")
</div>
<div id="second">
@Html.Partial("~/Views/Example/_SecondForm.cshtml")
</div>
每个部分只包含不同的表单,每个执行不同的操作。
_FirstForm.cshtml
@using (Html.BeginForm("First", "Example", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
... form stuff
_SecondForm.cshtml
@using (Html.BeginForm("Second", "Example", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
... form stuff
问题:
当我提交上述表单之一时,我想调用表单操作(First 或 Second),但保持在我调用它的同一页面上(在本例中为 Both.cshtml)。
目前,如果我提交第一个表单,它会将我带到 /Example/First,它不存在并且我得到一个 404。第二个表单也是如此,但 /Example/Second。
我还计划在其他页面上使用这些部分视图表单,所以我不想只返回View("Both.cshtml");。我只希望调用该操作,并使用与显示部分功能相同的完整 View()。
有谁知道我可以做些什么来解决这个问题?
【问题讨论】:
-
首先,您可以使用 Ajax.BeginForm 通过 Ajax 提交部分表单。但是,听起来您希望提交任一表单以实际发布到不同的操作?
-
@BrendanGreen 是的,我希望各自的表单触发 First 和 Second 操作,而不是尝试转到这些不存在的 /Example/First 和 /Example/Second 页面
-
首先..修复你的段落词汇,这对我来说毫无意义..问题是什么以及你试图实现的目标......
-
@Shaz 我在同一个视图中使用多个局部视图。每个局部视图都包含一个表单。当我提交该表单时,我想调用表单操作,但留在我调用它的同一页面上。
标签: c# asp.net-mvc forms asp.net-mvc-4 partial-views