如何从MVC 6中的ASP.Net 5 Tag Helper访问RouteData

Rob*_*ird 7 asp.net-core-mvc tag-helpers asp.net-core

我试图抓住当前路线,以便我可以使用Tag Helper突出显示一组链接中的活动页面.

TagHelperContext不允许我访问任何有用的东西.如何获取RouteData的引用?

Rob*_*ird 14

我最终找到了这里描述的答案:https://github.com/aspnet/Announcements/issues/28

您可以使用新属性使用属性注入导入ViewContext.您需要在标记助手类中创建一个属性,如下所示:

[ViewContext]
public ViewContext ViewContext { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后,您可以访问当前控制器或操作,如下所示:

var pageController = ViewContext.RouteData.Values["controller"];
var pageAction = ViewContext.RouteData.Values["action"];
Run Code Online (Sandbox Code Playgroud)

也许我在做足够的研究之前发布了这个问题,但这并不完全是显而易见的,所以我希望这有助于其他人!

  • 我使用asp-controller和asp-action与anchortaghelper上的相同属性保持一致,但是对于我所有其他属性,我使用的是自定义前缀. (2认同)