ASP.NET MVC:Actionlink 没有导航到名称相同但参数不同的正确操作方法

ASP.NET MVC : Actionlink does not navigate to correct action method of same name but different parameters

我有两个同名的动作方法。而且都是用Http动词'Get''Post'修饰的,参数列表也不一样

 [HttpGet]
 public ActionResult Transaction()

 [HttpGet]
 public ActionResult Transaction(int recordId)

 @Html.ActionLink("Back to Main page", "Transaction", new { recordId= Model.studentId })

两者都命名为Transaction,一个带参数,一个不带参数。

旨在在点击该按钮时调用 Transactions(int recordId) 方法的操作 link 始终导航至 Transaction() 而不是 Transaction(int recordId).

我有两个问题:

  1. 为什么我的代码总是到达没有参数的方法,即使操作 link 有参数?

  2. 我已经用 HttpPostHttpGet 修饰了我的操作方法,如何将 HttpGetHttpPost 包含在操作 link 或任何其他表单元素?

ActionLink 呈现为 <a href="...."> HTML 元素,因此始终是 GET 请求,因此始终转到用 [=13 修饰的操作方法=] 注释 - 它不查看任何参数列表或类似的东西。

如果您想调用 POST 操作方法,您需要有一个 HTML 表单和该表单上的提交按钮 - 这将是一个 POST 请求由装饰有 [HttpPost] 注释的方法处理 ...