如何转换此修复此ASP.NET MVC5路由?

时间:2013-11-05 00:47:55

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

我不确定如何将此AttributeRoute转换为MVC5路径。

[GET("", IsAbsoluteUrl = true)] // => main home page.
[GET("Index")]
public ActionResult Index(..) { .. }

IsAbsoluteUrl是令我困惑的事情之一。

1 个答案:

答案 0 :(得分:3)

根据此处的说明:http://attributerouting.net/#route-prefixes IsAbsoluteUrl标记旨在忽略Controller上定义的RoutePrefix。例如:

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

    [GET("", IsAbsoluteUrl = true)] //1
    [GET("Index")] //2
    public ActionResult Index() {
        ...
    }
}

因此,使用'标准'AttributeRouting(缺少更好的名称),以下路由应映射到您的Index()方法:

  • /(1)
  • / MyApp / Index(2)

MVC5中新的基于属性的路由具有类似的功能(基于前者),语法略有不同(参见http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx

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

    [Route("~/")] //1
    [Route("Index")] //2
    public ActionResult Index() {
        ...
    }
}

代字号~似乎等同于IsAbsoluteUrl