MVC中Spring.net 对基类控制器无效 过滤器控制器无效

时间:2022-12-03 09:06:09

比如现在我又一个BaseController作为基类控制器,用于过滤权限、登录判断等作用,其它控制由原本的继承Controller,改为继承BaseController。然后BaseController重写Controller中方法OnActionExecuting

MVC中Spring.net 对基类控制器无效 过滤器控制器无效

当我们此时再访问 User控制器下的某个Action,那么问题就来了,服务器会先执行BaseController中的OnActionExecuting方法,而此时,iu并没有由spring.net创建!!依旧为null

经过几次测试后,猜测问题可能是由于BaseController作为基类,每次实例化时(访问子类控制器(UserController)其实就会在内部实例化一个基类),spring.net并没有办法获得到这个跟随子类(UserController)实例化而实例化的基类(BaseController)的访问权,所以iu才会为null。

我的解决方法如下

MVC中Spring.net 对基类控制器无效 过滤器控制器无效

BaseController作为基类控制器,必定始终被使用,所以,将它的构造函数设为static,只执行一次,执行时同时给iu赋值,这样,以后iu便一直都有值了。