使用属性路由生成网址

时间:2017-11-10 08:45:46

标签: asp.net-mvc asp.net-mvc-5 url-routing asp.net-mvc-routing attributerouting

我有三个类似路线的重载动作;路由工作正常,问题在于链路生成。

代码与此类似:

[RoutePrefix("Prefix")]
public partial class MyController : Controller
{

    [ActionName("Index"), Route]
    public virtual ActionResult ActionMethod() {}

    [ActionName("Index"), Route("{param1}")]
    public virtual ActionResult ActionMethod(AnEnum param1, long? param2 = null) {}

    [HttpPost, ActionName("Index"), Route("{param1}")]
    public virtual ActionResult ActionMethod(Model model) {}
}

使用当前路由prefix/prefix/EnumVal1工作正常,问题在于生成的网址;我得到prefix/?param1=Val第二个操作方法,它没有正确路由,post操作也没有。

如果我更改路线order,则第一个链接无法正常生成。

[ActionName("Index"), Route("", Order = 1)]
public virtual ActionResult ActionMethod() { }

[ActionName("Index"), Route("{param1}", Order = 0)]
public virtual ActionResult ActionMethod(AnEnum param1, long? param2 = null) {}

知道我在这里缺少什么吗?请注意,由于存在外部链接,因此无法明确确定路径名称。

0 个答案:

没有答案