0

我有一个带有 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>
}
4

1 回答 1

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;
    }
}

与为您的提交按钮的“名称”属性提供要调用的操作方法的名称相协调。

于 2013-11-05T15:26:11.140 回答