【发布时间】:2016-08-29 12:19:04
【问题描述】:
尝试制作多个提交表单,但出现错误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> Add New</button>
}
【问题讨论】:
-
我猜你不明白你的方法参数是什么或你的按钮在做什么(他们需要
value属性才能发布一个值)。建议你看看this question/answer -
我想这篇文章会有你的问题的答案:stackoverflow.com/questions/442704/…
标签: asp.net-mvc razor html.beginform