假设我有一个包含 2 个表单的页面,它们都在同一页面上提交不同的数据,一个提交两个 ID,另一个只提交 1 个 ID。他们都回发到同一页面(本身)。这是 HTML 的样子……
<form method="post">
<select name="regID">
...
</select>
<select name="jobID">
...
</select>
<input type="submit" value="Add">
</form>
<form method="post">
<button name="ID" type="submit" value="@ID">Remove</button>
</form>
现在,要处理控制器中的第一个表单,我可以做
[HttpPost]
public ActionResult Index(int regID, int jobID)
{
....
}
但是,如果我尝试通过添加来处理第二种形式
[HttpPost]
public ActionResult Index(int ID)
{
....
}
当我单击提交按钮时,我现在会收到错误消息
The current request for action 'Index' on controller type 'UserJobController' is ambiguous between the following action methods:
System.Web.Mvc.ActionResult Index(Int32) on type careerninja.Controllers.UserJobController
System.Web.Mvc.ActionResult Index(Int32, Int32) on type careerninja.Controllers.UserJobController
那么,是否可以在控制器中重载具有不同值的 [HttpPost] 方法来处理 2 组不同的表单数据,或者这是不可能的?是否有另一种解决方案我可能无法处理此类问题?
基本上,对于第二种形式,我想要一个“删除”按钮,当单击该按钮时,调用控制器删除项目,删除项目,然后返回 Index() 视图。