【问题标题】:what is the difference between writing custom method and custom filters?编写自定义方法和自定义过滤器有什么区别?
【发布时间】:2014-11-21 10:50:13
【问题描述】:

MVC 过滤器提供了一种为动作和控制器注入预处理和后处理逻辑的方法。我们还可以编写自定义过滤器并使用该属性装饰我们的动作和控制器。同样的事情可以通过在动作执行之前和之后编写方法来实现。那我们为什么要使用过滤器呢?编写自定义方法和自定义过滤器有什么区别?

【问题讨论】:

  • 你能用“执行动作之前和之后的方法”来说明你的意思吗(即给出一些代码来说明这在控制器中的样子)
  • 使用过滤器可以让您编写一段代码,然后将其应用于多个(或所有)操作方法
  • 我可以在 Controller 的 Action 中调用函数,而不是使用动作过滤器。那么为什么我们需要 MVC 中的动作过滤器呢?这就是我的疑问..

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


【解决方案1】:

据我所知,自定义方法你的意思是覆盖控制器管道方法,如OnActionExecutedOnResultExecuted 等。如果你在那里实现你的逻辑,你在那里编写的代码将在 所有控制器方法。此外,如果您想在应用程序的其他控制器中使用此逻辑,则必须创建 CoreContoller 类,以覆盖方法并由其他控制器继承。

另一方面,如果您实现 ActionFilter 并将其注册到您的 MVC 应用程序中,您可以在不同的控制器方法上使用此逻辑,只需在控制器方法顶部添加属性即可。如果您不需要所有方法中的逻辑,它会更加灵活。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多