C# 如何处理部分/整页提交
我有一个带有2个提交按钮的编辑页面。现在我有第三个可以封装两个编辑部分。控制器上的formCollection只有“Edit1”字段。如何传递所有数据?(如果我删除了Edit1和Edit2的using语句,我将获得所有数据)C# 如何处理部分/整页提交,c#,html,asp.net,.net,razor,C#,Html,Asp.net,.net,Razor,我有一个带有2个提交按钮的编辑页面。现在我有第三个可以封装两个编辑部分。控制器上的formCollection只有“Edit1”字段。如何传递所有数据?(如果我删除了Edit1和Edit2的using语句,我将获得所有数据) @使用(Html.BeginForm(“EditAll”,“Account”,FormMethod.Post,new{id=“EditAll”})) { @使用(Html.BeginForm(“Edit1”,“Account”,FormMethod.Post,new{id
@使用(Html.BeginForm(“EditAll”,“Account”,FormMethod.Post,new{id=“EditAll”}))
{
@使用(Html.BeginForm(“Edit1”,“Account”,FormMethod.Post,new{id=“Edit1”}))
{
...
编辑1
}
@使用(Html.BeginForm(“Edit2”,“Account”,FormMethod.Post,new{id=“Edit2”}))
{
...
编辑2
}
全部编辑
}
请参阅这篇关于拥有多个提交按钮的文章:
基本上,您将使用以下代码:
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;
}
}
与为提交按钮“name”属性提供要调用的操作方法的名称相协调。您可能希望在答案中包含该文章中的内容作为引用,因为链接有时会断开,这很可能会将此答案标记为删除。好主意,我将从文章中添加一些内容。
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;
}
}