为什么要调用base.OnActionExecuting(filterContext);?

cho*_*bo2 37 asp.net-mvc action-filter asp.net-mvc-3

我只是看一些我的旧代码,我有一个动作过滤器(OnActionExecuting方法)

最后我有

 base.OnActionExecuting(filterContext); 
Run Code Online (Sandbox Code Playgroud)

为什么要四处搜索,我会看到这几次.我也看到在我的旧授权标签中,我将基座称为基座.

我应该总是在之后调用基本方法吗?

Dar*_*rov 62

我应该总是在之后调用基本方法吗?

这取决于具体情况.

例如,在授权过滤器(派生自AuthorizeAttribute)中,如果调用基本方法,则将执行ASP.NET MVC中内置的所有现有授权逻辑.如果您不调用它,则只应用您的授权逻辑.

至于其他的标准操作筛选而言(从获得ActionFilterAttribute)所有OnActionExecuting,OnActionExecuted,OnResultExecutingOnResultExecuted被定义为虚拟的,但他们的身体是空的,所以它没有任何区别,如果你打电话或不是基本方法.