asp.net-mvc – 如何为所有控制器编写动作过滤器
发布时间:2020-12-16 04:03:05 所属栏目:asp.Net 来源:网络整理
导读:这是一个smaple动作过滤器,我们知道当我们编写动作过滤器时,我们需要像这样装饰控制器来为任何特定的控制器实现它,但是我想知道有没有办法编写动作过滤器,它将适用于所有控制器,我不需要用动作过滤器属性来装饰控制器.任何的想法. [LogActionFilter]public c
这是一个smaple动作过滤器,我们知道当我们编写动作过滤器时,我们需要像这样装饰控制器来为任何特定的控制器实现它,但是我想知道有没有办法编写动作过滤器,它将适用于所有控制器,我不需要用动作过滤器属性来装饰控制器.任何的想法.
[LogActionFilter] public class HomeController : Controller {} public class LogActionFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { Log("OnActionExecuting",filterContext.RouteData); } public override void OnActionExecuted(ActionExecutedContext filterContext) { Log("OnActionExecuted",filterContext.RouteData); } private void Log(string methodName,RouteData routeData) { var controllerName = routeData.Values["controller"]; var actionName = routeData.Values["action"]; var message = String.Format("{0} controller:{1} action:{2}",methodName,controllerName,actionName); Debug.WriteLine(message,"Action Filter Log"); } } 解决方法public class LogActionFilterAttribute : IActionFilter { public void OnActionExecuted(ActionExecutedContext filterContext) { Log("OnActionExecuted",filterContext.RouteData); } public void OnActionExecuting(ActionExecutingContext filterContext) { Log("OnActionExecuting",filterContext.RouteData); } private void Log(string methodName,RouteData routeData) { var controllerName = routeData.Values["controller"]; var actionName = routeData.Values["action"]; var message = String.Format("{0} controller:{1} action:{2}",actionName); Debug.WriteLine(message,"Action Filter Log"); } } public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { GlobalFilters.Filters.Add(new LogActionFilterAttribute()); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.Net web api Vs .Net核心web api
- asp.net-mvc – 用于MVC不引人注目的远程验证的事件挂钩
- asp.net-mvc – 在ASP.Net MVC3的Razor视图中将值传递给HRE
- 如何在ASP.NET网站项目中使用最新的VB.NET语言级别?
- asp.net – 从User.Identity.Name中删除域名
- asp.net – 什么是关键字如果Page.IsPostBack如何使用它
- [译]ASP.NET Core 2.0 带初始参数的中间件
- asp.net-identity – 在调用SignIn后,可以通过OWIN修改ASP.
- asp.net – 关于webcal URI方案的ics文件
- asp.net-mvc – 如何调试在Azure中部署的ASPNET核心MVC应用
推荐文章
站长推荐
- 在ASP.NET 2.0中的特定时间清除缓存
- asp.net – ASP.NET中的“关键字不支持:”错误
- Asp.net实现MVC处理文件的上传下载功能实例教程
- asp.net-mvc – DotNetOpenAuth:消息签名不正确
- ASP.NET MVC 4的用户管理
- asp.net-mvc – Asp.Net MVC 4:我们可以设置Lay
- asp.net-identity – 在调用SignIn后,可以通过OW
- asp.net-mvc – 如何使用Wix在IIS 7上安装ASP.Ne
- asp.net – 多个RegisterClientScriptBlock
- asp.net-web-api – System.Web.Http.WebHost中的
热点阅读