asp.net-mvc – 控制器没有从不同的程序集加载?
发布时间:2020-12-16 03:27:09 所属栏目:asp.Net 来源:网络整理
导读:我正试图从不同的程序集加载一个控制器,但我被困在这里. 我有两个项目: Web应用程序 类库 在Web应用程序中,我定义了一个Route: routes.MapRoute("Root","root/{Action}",new {Controller = "Root",Action = "Index" }); 现在当我点击以下URL时,路由匹配,但
我正试图从不同的程序集加载一个控制器,但我被困在这里.
我有两个项目: > Web应用程序 在Web应用程序中,我定义了一个Route: routes.MapRoute("Root","root/{Action}",new {Controller = "Root",Action = "Index" }); 现在当我点击以下URL时,路由匹配,但是会引发404错误.任何人都可以告诉我为什么会这样吗? (p.s.RootController位于类库中) http://webapp/root 我试过添加一个自定义控制器工厂: public class ControllerFactory : DefaultControllerFactory { protected override IController GetControllerInstance(RequestContext reqContext,Type controllerType) { // reqContext.Route is correct and has the "Root" route loaded // controllerType seems to be null ?? // if I break execution here and manually set controllerType to // typeof(ClassLibrary.RootController) and continue from there,// then everything works as expected... // So this method is being called without controllerType... but why?? } } 我还尝试在路由中添加名称空间属性: routes.MapRoute("Root",new { Controller = "Root",Action = "Index",Namespaces = new[] { typeof(RootController).Namespace } }); 解决方法
经过多次调试和挫折后,我发现控制器类被声明为私有,但在场景中不起作用.
即使我的ControllerFactory在同一名称空间中,创建控制器缓存的类也不是.因此,由DefaultControllerFactory基类生成的GetControllerInstance请求无法找到RootController类. 将RootController声明为公共解决了这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 谁在生产应用程序中实际使用DataGrid / GridVie
- asp.net – 使用ajax触发器异步调用时,复选框检查事件的事件
- 通过WCF扩展实现消息压缩
- ASP.NET MVC:Application_Start和Url.Action
- asp.net-mvc-3 – Azure网站上的RavenDb – 访问被拒绝
- 提高ASP.NETWeb应用性能的24种方法和技巧
- asp.net-mvc – ASP.NET MVC3,Html.TextAreaFor没有编码?
- ASP.net客户端ID模式
- asp.net – Controller.Execute呈现为没有内容类型的文本文
- ASP.NET MVC查看用户控件 – 如何设置ID?
推荐文章
站长推荐
- asp.net-mvc – 为什么在为JavaScript分配Model值
- asp.net – 我可以重新发布或携带POST数据(如果是
- asp.net-mvc – 如何使用AJAX调用更新MVC中带有A
- asp.net-mvc – ASP.NET MVC中的代码
- asp.net-mvc – 重定向到mvc中的actionresult但不
- asp.net-mvc – 在MVC中使用Code Behind Model
- asp.net-mvc – 使用Angular VS Razor进行ASP.Ne
- asp.net-mvc-3 – ASP.NET MVC 3 – 验证问题
- asp.net-mvc – 如何在ASP.NET MVC Web API中将U
- asp.net-mvc-4 – 部署到IIS 7后,ASP.NET MVC 4
热点阅读