从内部视图获取路线名称?

时间:2012-12-29 23:33:01

标签: asp.net-mvc attributerouting

使用Attribute Routing您可以定义路线名称。有没有办法从我的视图中获取所用路线的名称?

3 个答案:

答案 0 :(得分:1)

这听起来不是一个好主意。您应该将路径名称添加到视图数据或视图模型中。

答案 1 :(得分:1)

根据this answer,您可以使用:

@{ var x = ViewContext.RouteData.Values["Action"]; }

获取路线数据。然后根据这篇文章的the right answer:“How to get a custom attribute from object instance in C#”,您可以提取属性。

答案 2 :(得分:1)

MapMvcAttributeRoutes有多个重载,需要IDirectRouteProvider实现的参数。该接口负责生成路由。此接口的默认实现是DefaultDirectRouteProvider。创建一个继承自DefaultDirectRouteProvider的自定义类,并覆盖所需的方法,例如GetActionDirectRoutesGetControllerDirectRoutes。在此方法中,您将获得包含路径名称的RouteEntry。您可以将此名称添加到datatokens。