【问题标题】:global mvc filter or httpmodule全局 mvc 过滤器或 httpmodule
【发布时间】:2012-12-07 00:35:25
【问题描述】:

我目前正在开发一个 MVC4 应用程序。我有一个网络表单背景,这是我的第一个 MVC4 应用程序。

在每个页面的请求中,我需要触发一个操作,将一些项目放置在 httpcontext 中,以便在进一步处理中重用。通常对于网络表单,我会为此使用 http 模块,并在模块请求的开头执行任务。或者有时,我需要在 PostAcquireRequestState 等处触发操作。

但是现在我正在使用 MVC,创建一个在每个控制器操作期间触发的全局过滤器是更好的做法吗?在过滤器中,我将放置与 httpmodule 中相同的逻辑。这种方法的优缺点是什么?

【问题讨论】:

  • 你可以选择任何一个。除非您解释您要达到的具体目标,否则很难给出建议。
  • 例如我去设置一些cookie,将项目插入httpcontext并设置线程文化等。

标签: asp.net-mvc asp.net-mvc-4 httpmodule


【解决方案1】:

过滤器稍后在 MVC 请求处理管道中执行。对于诸如设置文化之类的事情,我建议尽可能早地这样做,就像在Application_AcquireRequestState 事件中一样。

我猜模型绑定比过滤器更早发生,因此您将面临一些与文化相关的问题http://gedgei.wordpress.com/2011/09/17/asp-net-mvc-localization-using-actionfilter/。在这种情况下,我会投票支持自定义HttpModule 而不是过滤器。

http://weblogs.manas.com.ar/smedina/2008/12/17/internationalization-in-aspnet-mvc/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    相关资源
    最近更新 更多