我可以从HttpContext获取当前正在执行的控制器吗?

Jag*_*ggu 9 c# asp.net asp.net-mvc

我正在使用一些第三方课程.我想得到我的控制器的路由值.不幸的是,它并没有把我正在执行的当前控制器交给我.我可以从HttpContext获取它吗?

该类看起来像:

public class ServiceStationVisibilityProvider
        : ISiteMapNodeVisibilityProvider 
    {

        public bool IsVisible(SiteMapNode node, HttpContext context, IDictionary<string, object> sourceMetadata)
        {
            node.Title = DateTime.Now.ToString(); //need to access routevalues and set title
            return true;
        }
Run Code Online (Sandbox Code Playgroud)

现在我可以手动检查Request.RawUrl并解析并做一些时髦的事情.但是,我不想写那种,并在应用程序增长后遇到麻烦.}

Mas*_*ini 9

您可以搜索此对象的值"controller""action"

HttpContext.Request.RequestContext.RouteData.Values
Run Code Online (Sandbox Code Playgroud)


Pad*_*ddy 7

不确定您正在执行什么上下文,但是您可以从RequestContext获取它:

RequestContext.RouteData.Values["controller"].ToString()
Run Code Online (Sandbox Code Playgroud)