public override void OnException(HttpActionContext actionContext) { base.OnActionExecuting(actionContext); //.... }
public override void OnActionExecuting(HttpActionContext actionContext) { base.OnActionExecuting(actionContext); //..... }
我的疑问就是为什么都调用了base中的 重写方法,而有些博文中却没有,我想知道其中的区别。
P.S 调用或者不调用程序的结果好像都是一样的。
调用不调用是需要看i具体的业务需求和应用场景。
假设你有个在调用action前的验证过滤,当其中验证失败的时候,你就可以直接返回而不需要调用基类。
一般来说为了避免不必要的麻烦,在操作继续情况下都会调用下基类的方法,而你如果没有在派生类中调用基类的话
那么请问是在方法开始调用还是结束时候调用比较好呢?
@陈大欠:
一个简单的调用action执行流程,假设你添加了一个账号验证过滤
{ auth_begin } ---> { 目标 action } ---> { auth_end }
所以如果你是一个验证过了,肯定是在调用目标action前执行是最好的,在action之后执行其实已经没有意义了.
但是在某些场景下,如果希望修改action执行后的一些数据或者补充数据,那么自然是要在action执行后调用好了
两种情况分别对应
Executing和Executed
看基类的方法有没实际操作.有实际操作就有影响.没实际操作就没影响.