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

时间:2011-10-07 08:01:08

标签: 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;
        }

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

2 个答案:

答案 0 :(得分:9)

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

HttpContext.Request.RequestContext.RouteData.Values

答案 1 :(得分:7)

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

RequestContext.RouteData.Values["controller"].ToString()
相关问题