Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 全局Asax vs全局过滤器_C#_Asp.net Mvc_Asp.net Mvc 5_Action Filter - Fatal编程技术网

C# 全局Asax vs全局过滤器

C# 全局Asax vs全局过滤器,c#,asp.net-mvc,asp.net-mvc-5,action-filter,C#,Asp.net Mvc,Asp.net Mvc 5,Action Filter,我的应用程序是用MVC5编写的 我注意到,随着应用程序的增长,我的Global.Asax文件慢慢地被代码填满。尤其是在应用程序的EndRequest中积累了大量的代码,这些代码可以执行日志记录、设置响应头以及一些安全/身份验证等操作 我想知道这类东西是否可以安全地移动到一组全局过滤器中?我以前没有使用过全局过滤器,但它们似乎是一种以可测试和封装的方式编写此类代码的好方法 因此: Global.asax应用程序_EndRequest是否直接等效于全局筛选器的OnActionExecuted方法

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

我注意到,随着应用程序的增长,我的Global.Asax文件慢慢地被代码填满。尤其是在应用程序的EndRequest中积累了大量的代码,这些代码可以执行日志记录、设置响应头以及一些安全/身份验证等操作

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

因此:

  • Global.asax应用程序_EndRequest是否直接等效于全局筛选器的OnActionExecuted方法
  • 在选择全局筛选器和应用程序请求时,需要考虑哪些因素

谢谢

我想这取决于你的需要。好啊我将尝试回答您的问题:

  • Global.asax应用程序_EndRequest是否直接等同于 全局筛选器的OnActionExecuted方法
  • 否。正如名称所示,在请求结束时调用应用程序_EndRequest,而全局筛选器的OnActionExecuted则根据执行的控制器进行调用

  • 在选择全局筛选器和应用程序请求时,需要考虑哪些因素
  • 这取决于你的需要。如果您需要在每个控制器调用结束后执行某项操作,那么可以使用过滤器,如果您只需要在请求结束时执行某项操作一次,只需将其放入全局asax EndRequest

    希望能有帮助