新建一个controller并指定为默认的方法
2024-08-28 12:14:16
在之前的项目中升级了MVC的DLL导致一开始程序运行时走的controller的有参构造方法变为走无参构造方法,但是该controller没有无参的构造方法,为了强制让程序走有参的构造方法,就在global文件的Application_Start()方法中写入了如下代码
IControllerFactory factory = new CustomControllerFactory();
ControllerBuilder.Current.SetControllerFactory(factory);
其中
CustomControllerFactory 代码如下:
public class CustomControllerFactory:IControllerFactory
{
public IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
{
DataSettings setting = new DataSettings();
var controller = new HomeController(setting);
return controller;
}
public System.Web.SessionState.SessionStateBehavior GetControllerSessionBehavior(
System.Web.Routing.RequestContext requestContext, string controllerName)
{
return SessionStateBehavior.Default;
}
public void ReleaseController(IController controller)
{
IDisposable disposable = controller as IDisposable;
if (disposable != null)
disposable.Dispose();
}
}
}
这样当时是强制程序走home的有参方法,home有几个参数,就传入几个参数,但是问题来了,如果你在程序中并不想让程序一开始就走home,比如我的程序要先走个激活的controller然后再走home,那么就算你使用了redirect去跳转到激活的 AuthorizeController,,他还是会去走home,不会去调到你指定的controller,但是后来发现不走有参的controller是因为引用升级的原因,全部系统的DLL升级后问题消失了,这段代码就没有存在的意义了,实际上,创建一个普通的类,继承IController后,上面的代码可以变动成
var controller = new Testt();
其中
Testt就是新建的类。简单的归纳一下,还希望大家补充IController,IControllerFactory,。以及程序中出现不走有参构造函数的时候如何强制去执行的建议
最新文章
- Centos6.5 配置Nginx开机自启动
- js 多选 反选
- java的字体的颜色,型号,大小的方法
- springmvc入门基础之注解和参数传递
- atitit.j2ee 1.5 1.6 的不同跟 Servlet 3.0新特性总结
- How to disable and clear query ranges in sysquery form
- ARC 没有自动释放内存
- 算法系列6《MAC》
- 高仿百度传课应用客户端源码iOS版
- nagios二次开发(五岁以下儿童)---nagios和nagiosql关系
- HDU-1994-利息计算
- isNAN()的使用
- javascript中用setAttribute给元素添加colspan属性无效
- [转]usdt omnicore testnet 测试网络
- 【进阶1-1期】理解JavaScript 中的执行上下文和执行栈(转)
- css学习_div+css布局
- Big Event in HDU (母函数, 玄学AC)
- GC收集器种类
- visual studio code 编辑器的配置及快捷键等, vscode, csc
- postgresql----INSERT
热门文章
- delete ELK index
- Device eth0 does not seem to be present, delaying initialization: Linux Networking
- js input复选框选中父级同时子级也选中
- php rtrim的一个坑,很“二”的问题
- Windows屏幕模糊,图片打开慢等解决方案
- 查看Python支持的.whl文件版本
- PHP文件上传error的错误类型 - $_FILES['file']['error']
- Express中404页面
- C#:新邮件监听及搜索
- 牛客网Java刷题知识点之匿名对象、匿名对象的内存结构图、匿名对象的应用场景、匿名对象的使用、匿名对象的简单例子、匿名对象要注意的事项