我有一个包含2个提交按钮的编辑页面。现在我有第三个将封装两个编辑部分。控制器上的formCollection仅具有“Edit1”字段。如何传递所有数据? (如果我删除了Edit1和Edit2的两个using语句,我会得到所有数据。)
@using(Html.BeginForm("EditAll", "Account", FormMethod.Post, new { id = "EditAll" }))
{
<div>
@using(Html.BeginForm("Edit1", "Account", FormMethod.Post, new { id = "Edit1" }))
{
...
<button name="Submit" style="float: right;" class="client">Edit 1</button>
}
@using(Html.BeginForm("Edit2", "Account", FormMethod.Post, new { id = "Edit2" }))
{
...
<button name="Submit" style="float: right;" class="client">Edit 2</button>
}
</div>
<button name="Submit" style="float: right;" class="client">Edit All</button>
}
答案 0 :(得分:0)
请参阅此文章,了解有多个提交按钮:http://blog.ashmind.com/2010/03/15/multiple-submit-buttons-with-asp-net-mvc-final-solution/
基本上你会使用这段代码:
public class HttpParamActionAttribute : ActionNameSelectorAttribute {
public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo) {
if (actionName.Equals(methodInfo.Name, StringComparison.InvariantCultureIgnoreCase))
return true;
if (!actionName.Equals("Action", StringComparison.InvariantCultureIgnoreCase))
return false;
var request = controllerContext.RequestContext.HttpContext.Request;
return request[methodInfo.Name] != null;
}
}
与给出提交按钮的“名称”属性一起调用要调用的操作方法的名称。