.NET MVC 获取 当前请求的 控制器/视图/区域 的名字

1)过滤器中的:

[csharp]  view plain copy print ?
  1. public class CMSAttribute : FilterAttribute, IAuthorizationFilter  
  2. {  
  3.     public void OnAuthorization(AuthorizationContext filterContext)  
  4.     {  
  5.         var controllerName = (filterContext.RouteData.Values["controller"]).ToString().ToLower();  
  6.         var actionName = (filterContext.RouteData.Values["action"]).ToString().ToLower();  
  7.         var areaName = (filterContext.RouteData.DataTokens["area"] == null ? "" : filterContext.RouteData.DataTokens["area"]).ToString().ToLower();  

2)视图中的:

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

3)action中:

[csharp]  view plain copy print ?
  1. string areaName=RouteData.DataTokens["area"].ToString().ToLower();  
  2. string controllerName = RouteData.Values["controller"].ToString().ToLower();  
  3. string actionName = RouteData.Values["action"].ToString().ToLower();  

你可能感兴趣的:(MVC技巧)