我能否从HttpContext中获取当前正在执行的控制器?

9

我正在使用一些第三方类。 我想在其中获取我的控制器的routevalues。 不幸的是,它没有给我执行当前控制器的信息。 我能从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个回答

9
您可以在此对象中搜索“controller”和“action”的值。
HttpContext.Request.RequestContext.RouteData.Values

7

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

RequestContext.RouteData.Values["controller"].ToString()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接