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

Posted

技术标签:

【中文标题】在 MVC3 中,如何获取当前的动作名称?【英文标题】:In MVC3, how to get the current action name? 【发布时间】:2013-12-17 05:47:55 【问题描述】:

有没有办法使用 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();
        
    

【问题讨论】:

ASP.NET MVC4: Get controller and action name from within controller?的可能重复 【参考方案1】:
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues != null) 

    if (routeValues.ContainsKey("action"))
    
        var actionName = routeValues["action"].ToString();
    

【讨论】:

感谢您的简化,@PeterB!【参考方案2】:
ViewContext.RouteData.Values["action"]

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

【讨论】:

以上是关于在 MVC3 中,如何获取当前的动作名称?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3:如何获取当前布局的名称?

如何在播放框架动作中获取当前语言?

如何在 MVC 3 中获取当前页面 URL

如何在 ASP.net MVC3 中获取 Advantage Database 数据?

CakePHP 获取动作名称

求助 ASP.net 后台循环添加按钮,如何才能获取到点击按钮获取到当前点击按钮的名称