html beginform mvc 中的多个提交表单

multiple submit form in html beginform mvc

尝试制作多个提交表单,但出现错误 The current request for action 'EditAccount' on controller type 'AccountController is ambiguous between the following action methods。我怎样才能解决这个问题?这是代码

属性:

public class HttpParamActionAttribute : ActionNameSelectorAttribute
{
    public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
    {
        if (actionName.Equals(methodInfo.Name, StringComparison.InvariantCultureIgnoreCase))
            return true;

        var request = controllerContext.RequestContext.HttpContext.Request;
        return request[methodInfo.Name] != null;
    }
}

来自控制器的方法:

[HttpPost]
[HttpParamAction]
public virtual async Task<ActionResult> AddNew(AccountModel model)
{ ... }


[HttpPost]
[HttpParamAction]
public virtual async Task<ActionResult> EditAccount(AccountModel model)
{ ... }

并查看

@using (Html.BeginForm(new {@class = "form-horizontal"}))
{

     <button type="submit" class="btn btn-w-m btn-primary" name="EditAccount">Save</button>

     <button type="submit" class="btn btn-w-m btn-primary" name="AddNew" ><i class="fa fa-plus"></i>&nbsp;Add New</button>

}

试试这个,它会起作用。基于 namevalue 调用函数。

.cshtml

@using (Html.BeginForm("ActionName",new {@class = "form-horizontal"}))
{

    <button type="submit" class="btn btn-w-m btn-primary" name="Account" value="Edit">Save</button>

    <button type="submit" class="btn btn-w-m btn-primary" name="Account" value="AddNew" ><i class="fa fa-plus" ></i>&nbsp;Add New</button>

}

.cs

[HttpPost]
[HttpParamAction]
public virtual async Task<ActionResult> ActionName(AccountModel model, string Account)
{ 
  if(Account=="Edit"){
   ... 
  }
  else if(Account=="AddNew"){
    ....
  }
}