全球Asax与全球过滤器

时间:2014-07-29 11:23:44

标签: c# asp.net-mvc asp.net-mvc-5 action-filter

我的应用程序是用MVC5编写的。

我注意到随着应用程序的增长,我的Global.Asax文件正在慢慢填满代码。特别是在Application_EndRequest中存在大量代码,这些代码执行诸如记录,设置响应头和一些安全/身份验证之类的事情。

我想知道这类东西是否可以安全地转移到一组全局过滤器中?我之前没有使用全局过滤器,但它们似乎是一种以可测试和封装方式执行此类代码的简洁方法。

所以:

  • 是Global.asax Application_EndRequest,它直接等同于全局过滤器的OnActionExecuted方法吗?
  • 在全局过滤器和Application_EndRequest之间进行选择时有哪些注意事项?

由于

1 个答案:

答案 0 :(得分:0)

我认为这取决于您的需求。好。我会尽力回答你的问题:

  1. 是Global.asax Application_EndRequest,直接等同于a 全局过滤器的OnActionExecuted方法?
  2.   

    没有。顾名思义,在请求结束时调用Application_EndRequest,而根据执行的控制器调用全局过滤器的OnActionExecuted。

    1. 在全局过滤器和Application_EndRequest之间进行选择时有哪些注意事项?
    2.   

      取决于您的需求。如果你需要在每个控制器调用结束后做一些事情,那么可以使用过滤器,如果你只需要在请求结束时做一次,只需将它放在全局的asax EndRequest中。

      希望它有所帮助。