MVC在filter中如何获取控制器名称和Action名称
2014-12-02 18:30
211 查看
使用ActionExecutingContext对象可以获取控制器名称、Action名称、参数名称以及参数值。路由和Action返回值不影响结果。
在代码中
1.获取控制器名称代码
或
2.获取Action名称代码
或
3.获取Action参数名称
4.获取参数值
如果可以确定参数名称可以直接用ActionParameters通过Key来获取,Key指参数名称
在代码中
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public class ViewLogAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); } }
1.获取控制器名称代码
var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
或
var controllerName = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"];
2.获取Action名称代码
var actionName = filterContext.ActionDescriptor.ActionName;
或
var actionName = HttpContext.Current.Request.RequestContext.RouteData.Values["Action"];
3.获取Action参数名称
//获取参数数组 var arrParameter = filterContext.ActionDescriptor.GetParameters(); //根据索引获取对应参数名 var paramName = arrParameter[0].ParameterName;
4.获取参数值
var parameterValue = filterContext.Controller.ValueProvider.GetValue(paramName).RawValue;
如果可以确定参数名称可以直接用ActionParameters通过Key来获取,Key指参数名称
var parameterValue = filterContext.ActionParameters["KeyName"];
相关文章推荐
- Asp.net MVC中如何获取控制器的名称
- MVC在页面View上获取当前控制器名称、Action名称以及路由参数
- MVC 获取控制器名称和Action名称(转载)
- MVC中如何获取控制器的名称
- MVC 002 MVC中获取控制器和Action名称的几种方法
- [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 OnActionExecuting内如何获取参数
- MVC View中获取action、controller、area名称
- MVC扩展控制器工厂,通过实现IControllerFactory,根据action名称生成不同的Controller
- MVC获取当前Controller/Action名称
- MVC中如何获取当前action、controller
- Asp.net MVC中获取控制器的名称的方法
- MVC View中获取action、controller、area名称
- MVC3在页面上获取当前控制器名称、Action名称以及路由参数
- MVC View中获取action、controller、area名称、参数
- MVC 在action方法中获取当前action的控制器名和action名
- Asp.net MVC中获取控制器的名称的方法
- .NET MVC 在action中,过滤器中,或视图中,如何分别获取 当前请求的 控制器/视图/区域 的名字
- ASP.NET MVC中的ActionFilter是如何执行的?
- ASP.NET MVC3在页面上获取当前控制器名称、Action名称以及路由参数
- Yii 中如何获取当前controller名称和controller内部action方法Id