@ Url.Action选择了错误的动作(AttributeRouting,asp.net mvc 5)

时间:2016-04-15 15:44:58

标签: c# asp.net-mvc asp.net-mvc-5 routing attributerouting

我有一个控制器有这两种动作方法:

两者都有相同的名称,但有不同的参数,其中一个是 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,它会按预期工作,但我想知道它为什么没有在第一条路线中被选中的地方。

0 个答案:

没有答案