在MVC3中,如何获取当前操作的名称?

6

有没有一种方法可以使用HttpContext或View上下文来获取当前操作的名称?

我可以使用以下方式获取控制器名称:

    var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;

    if (routeValues != null) 
    {
        if (routeValues.ContainsKey("controller"))
        {
            controllerName = HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString();
        }
    }
}

2个回答

17
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues != null) 
{
    if (routeValues.ContainsKey("action"))
    {
        var actionName = routeValues["action"].ToString();
    }
}

感谢您的简化,@PeterB! - Chris Ballance

0
ViewContext.RouteData.Values["action"]

据我所知,ViewContext.RouteData.Values永远不会为空,并且始终具有“controller”和“action”键。如果我错了,请纠正我。

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