我有一个控制器有这两种动作方法:
两者都有相同的名称,但有不同的参数,其中一个是 HttpGet ,一个是 HttpPost
public class TestController : Controller {
[Route("Test/{id:int}/ActionName"), HttpGet]
public ActionResult ActionName(int id) { ... }
[Route("Test/ActionName"), HttpPost]
public ActionResult ActionName(TestObject obj) { ... }
}
public class TestObject {
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
当我@Url.Action("ActionName", new { id = 3 })
时,我希望选择HttpGet动作,而不是HttpPost动作。
我知道如果我在第一条路线中将订单设置为1,在第二条路线中设置为2,它会按预期工作,但我想知道它为什么没有在第一条路线中被选中的地方。