.NET MVC 在action中,过滤器中,或视图中,如何分别获取 当前请求的 控制器/视图/区域 的名字

1)过滤器中的:

 

 
  1. public class CMSAttribute : FilterAttribute, IAuthorizationFilter  
    {  
        public void OnAuthorization(AuthorizationContext filterContext)  
        {  
            var controllerName = (filterContext.RouteData.Values["controller"]).ToString().ToLower();  
            var actionName = (filterContext.RouteData.Values["action"]).ToString().ToLower();  
            var areaName = (filterContext.RouteData.DataTokens["area"] == null ? "" : filterContext.RouteData.DataTokens["area"]).ToString().ToLower();  

     

2)视图中的:

 


 

 
  1. @{  
        //获取当前路由的区域名称  
        var areaName = (ViewContext.RouteData.DataTokens["area"] == null ? "" : ViewContext.RouteData.DataTokens["area"]).ToString().ToLower();  
        var actionName=ViewContext.RouteData.Values["action"].ToString().ToLower();  
        var controllerName = ViewContext.RouteData.Values["controller"].ToString().ToLower();  
    }  

     


3)action中:

 

 

 
    1. string areaName=RouteData.DataTokens["area"].ToString().ToLower();  
      string controllerName = RouteData.Values["controller"].ToString().ToLower();  
      string actionName = RouteData.Values["action"].ToString().ToLower();  

       

posted @ 2018-06-14 14:03  周宏伟  阅读(164)  评论(0编辑  收藏  举报