MVC的过滤器

网友投稿 222 2022-09-05

MVC的过滤器

过滤器分类:

Action过滤器    View结果渲染过滤器     全局错误异常过滤器    身份验证过滤器

1.Action过滤器:在Action执行之前和执行之后分别干一些事   接口:(IActionFilter)

2.View结果渲染过滤器:   接口:(IActionFilter)

[AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)] public class MyActionFilterAttribute :ActionFilterAttribute { public string Name { get; set; } //在Action执行之前先执行此方法 重写方法 执行之前先执行 public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); filterContext.HttpContext.Response.Write("
OnActionExecuting---"+ Name); } // public override void OnActionExecuted(ActionExecutedContext filterContext) { base.OnActionExecuted(filterContext); filterContext.HttpContext.Response.Write("
OnActionExecuted---" + Name); } public override void OnResultExecuting(ResultExecutingContext filterContext) { base.OnResultExecuting(filterContext); filterContext.HttpContext.Response.Write("
OnResultExecuting---" + Name); } public override void OnResultExecuted(ResultExecutedContext filterContext) { base.OnResultExecuted(filterContext); filterContext.HttpContext.Response.Write("
OnResultExecuted---" + Name); } }

怎么去调用呢?

[MyActionFilter(Name = "Home/Index")] public ActionResult Index() { Response.Write("
Action执行了....
"); }

注意:类上面的标签可以作用到所有控制器上的方法

所有的控制器都需要的话(全局过滤器):

public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new MyActionFilterAttribute(){Name = "全局的"}); } }

调用:

控制器和类中的内容都显示:

[AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)] public class MyActionFilterAttribute :ActionFilterAttribute { }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:调度 Quartz 时间格式配置
下一篇:汽车渠道营销模式变革提速!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~