【问题标题】:Global Asax vs Global Filter全局 Asax 与全局过滤器
【发布时间】:2014-09-20 18:07:25
【问题描述】:

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

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

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

所以:

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    希望对您有所帮助。

    【讨论】:

    • 请你举个例子“每个控制器调用结束后的东西”和“请求结束后的东西一次”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2019-06-11
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多