asp.net-mvc – ASP.NET MVC路由 – 所有看起来都匹配正确的路由
我有一个具有“一般”路径结构的站点,以及一个额外的“翻译”区域.所以在顶层,你有类似的东西:
> / 在Translate区域内,我有: > /翻译/ Word(WordController,索引操作) 所有这些工作. 但是,只要我在现有结构中添加另一个控制器,例如.定义…… > /翻译/定义(DefinitionController,索引动作) 或发音…… > /翻译/发音(发音控制器,索引动作) 我得到的只是404. 我所在地区的路由配置如下: public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Translate_direct","Translate/{controller}/{action}",new { action = "Index",controller = "Default",} ); context.MapRoute( "Translate_default","Translate/{toLanguageCode}/{query}/{fromLanguageCode}/{controller}/{section}/{action}/{id}",controller="Default",id = UrlParameter.Optional,section=UrlParameter.Optional } ); } 我已安装Phil Haack’s RouteDebugger并获得以下结果: 因此它似乎与Controller和Action相匹配,但我得到的是404. 为了完整性和保证,还显示了我的“MVC”文件结构: 我显然错过了一些显而易见的东西,但不确定是什么……? 更新: 似乎我的命名空间以某种方式涉及. 我的TranslateAreaRegistration类的命名空间为Taggloo.Web.Client.Areas.Translate,但我的PronunciationController的命名空间为* Taggloo.Web.** Mvc.** Client.Areas.Translate.Controllers * 似乎我的命名空间中的错误导致两者不同(TranslateAreRegistration类也应该在Taggloo.Web.Mvc.Client.Areas.Translate命名空间中)是问题.我尝试将它们都制作成Taggloo.Web.Mvc ….但这不起作用.我不情愿地将它们都设置为Taggloo.Web.Client ……而现在它可以工作了. 所以不是一个解决方案,一个解决方法,尽管环顾四周,我仍然没有明白为什么. 解决方法
如果使用AreaRegistrationContext.MapRoute重载之一,则MVC(System.Web.Mcv.AreaRegistration.RegisterAllAreas)中的默认区域注册使用Area的AreaRegistration派生类的命名空间将Namespace数据标记添加到路由定义.
然后,如果定义了此Namespaces标记,则DefaultControllerFactory在匹配路由时交叉检查控制器的名称空间. 如果控制器的命名空间相同(或者如果命名空间令牌以.*结尾,则以令牌开头),则工厂将匹配控制器类型并继续实例化控制器.如果它不匹配,并且ControllerFactory从GetControllerType方法返回null,最终你将获得404. 你提到你将它们都设置为Taggloo.Web.Mvc ….如果它们是相同的,它应该有效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.NET MVC 3中等效的Flash
- asp.net-mvc-3 – MVC3正确的方式来改变每个请求的文化
- asp.net – 在Response.Redirect()之后调用Response.End()
- 如何在ASP.NET MVC中配置3个级别的URL?
- asp.net – WCF,WebAPI和OWIN IIS集成管道.根据路线跳过OWI
- ASP.NET Core Web读取appsettings.json中的配置
- asp.net – 如何在VB.net中使用Dictionary?
- asp.net-web-api – Structure Map无参数构造函数错误
- 如何处理在MVC视图中应用程序启动和传输和显示错误发生的AS
- asp.net-mvc – 如何持久保存用户选择(例如:主题选择)
- asp.net – 会话超时和页面响应时间
- ASP.NET Web API请求完成后如何处置资源?
- 使用ASP.Net和JSON格式化实现jQuery的jgGrid
- asp.net – 客户端确认后DropdownList autoposba
- 关于Type Initializer和 BeforeFieldInit的问题,
- asp.net – 从.net应用程序下载4GB文件
- asp.net-mvc – 我们可以从现有数据库的选定表中
- asp.net – 有一个很好的web.config编辑器吗?
- asp.net-mvc – ASP.NET MVC安全检查表
- asp.net – Oracle Managed Dataacess EF6自定义