asp.net-mvc – 如何为所有控制器编写动作过滤器
发布时间:2020-05-24 15:59:34 所属栏目:asp.Net 来源:互联网
导读:这是一个smaple动作过滤器,我们知道当我们编写动作过滤器时,我们需要像这样装饰控制器来为任何特定的控制器实现它,但是我想知道有没有办法编写动作过滤器,它将适用于所有控制器,我不需要用动作过滤器属性来装饰控制器.任何的想法. [LogActionFilter]public cl
|
这是一个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.config中添加响应http头吗?
- asp.net-mvc – 如何在razor(CSHTML)中设置contenttype?
- 实体框架 – EF6 DBContext动态连接字符串
- ASP.NET:获取*真实*原始URL
- IIS 7.0的ASP.NET进程是什么?
- asp.net-mvc – 为什么ASP.NET MVC默认的模型绑定器很慢?做
- asp.net-mvc-3 – Asp.Net MVC 3自定义WebViewPage在不同的
- ASP.NET从URL获取物理文件路径
- asp.net-mvc – 如何使用Moq测试一个自定义的ModelBinder?
- asp.net – 如何在一个新的选项卡中打开asp:HyperLink.Nav
推荐文章
站长推荐
- ASP.NET MVC 4和Razor 2:View引擎不再支持xml?
- asp.net-mvc – Asp.Net核心MVC6如何最初在Ident
- asp.net-core – .NET Core SDK安装程序无法在Wi
- asp.net-mvc – 如何在ASP.NET MVC路由中使用带有
- asp经典 – ASP Classic中的注释代码
- asp.net – 保持visual studio从bin / on重建中删
- asp.net-mvc – 属性路由和本地化问题
- asp.net – html脚本标签不使用类型javascript?
- asp.net – 如何忽略正则表达式的情况?
- .net – vNext是完全“基于约定的编程”吗?
热点阅读
