asp.net mvc Selector和Filter之间的区别?

时间:2015-04-05 13:57:38

标签: asp.net asp.net-mvc filter selector

我对asp.net mvc seletor&过滤

众所周知,有5种类型的过滤器:身份验证,授权,操作,结果,异常。

但是,还有另一个'过滤器':动作选择器。

基类也不同:ActionMethodSelectorAttribute和FilterAttribute

谁能告诉我选择器和放大器之间有什么区别?常见的过滤器?

感谢。

2 个答案:

答案 0 :(得分:1)

动作选择器只是确定要运行的动作(例如,通过用于请求的HTTP动词)。

过滤一些不同的目标 - 操作过滤器在操作之前或之后运行代码,异常过滤器在异常上运行代码,身份验证过滤器用于实现身份验证的代码等。

答案 1 :(得分:0)

今天我只是用红色材料来说明这个相关的问题。

在mvc框架内部,它是这样的:
----的ControllerFactory
----控制器选择和实例化(借助Dependency Resolver)
----调用controller.Execute(RequestContext)
-------- ActionInvoker(默认值:ControllerActionInvoker)
-------- this.ActionInvoker.InvokeAction(ControllerContext,actionName)
------------选择动作方法(涉及动作选择器)
------------认证&授权过滤器
------------模特装订
------------使用动作过滤器调用动作
------------认证质询(IAuthenticationFilter)
------------使用结果过滤器执行结果
----控制器配置

请参阅,选择器和过滤器完全在不同的范围内,即使它们都在actionInvoker中使用。