asp.net-mvc – T4MVC和不同区域的重复控制器名称
在我的应用程序中,我将控制器命名为Snippets,默认区域(在应用程序根目录中)和我的区域名为Manage.我使用T4MVC和自定义路由,如下所示:
routes.MapRoute( "Feed","feed/",MVC.Snippets.Rss() ); 我收到这个错误:
我知道MapRoute存在带有名称空间参数的重载,但是T4MVC支持没有这样的重载.可能是我错过了什么?可能的语法可以是: routes.MapRoute( "Feed",MVC.Snippets.Rss(),new string[] {"Snippets.Controllers"} ); 或者,将名称空间作为T4MVC属性对我来说似乎相当不错: routes.MapRoute( "Feed",new string[] {MVC.Snippets.Namespace} ); 提前致谢! 解决方法
说得通.我想你只是第一个遇到这种情况的人.尝试通过以下方法替换T4MVC.tt中的所有MapRoute方法:
public static Route MapRoute(this RouteCollection routes,string name,string url,ActionResult result) { return MapRoute(routes,name,url,result,null /*namespaces*/); } public static Route MapRoute(this RouteCollection routes,ActionResult result,object defaults) { return MapRoute(routes,defaults,null /*constraints*/,string[] namespaces) { return MapRoute(routes,null /*defaults*/,namespaces); } public static Route MapRoute(this RouteCollection routes,object defaults,object constraints) { return MapRoute(routes,constraints,object constraints,string[] namespaces) { // Start by adding the default values from the anonymous object (if any) var routeValues = new RouteValueDictionary(defaults); // Then add the Controller/Action names and the parameters from the call foreach (var pair in result.GetRouteValueDictionary()) { routeValues.Add(pair.Key,pair.Value); } var routeConstraints = new RouteValueDictionary(constraints); // Create and add the route var route = new Route(url,routeValues,routeConstraints,new MvcRouteHandler()); if (namespaces != null && namespaces.Length > 0) { route.DataTokens = new RouteValueDictionary(); route.DataTokens["Namespaces"] = namespaces; } routes.Add(name,route); return route; } 请注意,只需编写代码,即可在没有T4MVC帮助的情况下在控制器命名空间中获得强类型: string[] { typeof(MyApplication.Controllers.SnippetsController).Namespace } 我应该理想地添加它,你根本不需要传递命名空间,因为你在MVC.Snippets.Rss()调用中已经捕获了定位特定控制器的意图.但是,如果没有对T4MVC进行大的改动,我找不到明显的方法来完成这项工作. 无论如何,请检查并测试更改,并让我知道它是如何工作的.如果它看起来不错,我会明白的. 谢谢! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – “GenerateResource”任务失败,意外地为空的
- asp.net-mvc – Telerik mvc grid,columns.bound to dictio
- asp.net – 如何在OnActionExecuting中获取当前路由信息
- asp.net-mvc – 汇编绑定重定向不工作
- asp.net-mvc – 使用ViewModel的MVC 3动态表单
- asp.net – 如何从SQL数据库流.flv文件
- asp.net-mvc-3 – Global.asax.cs在服务器上不可见
- asp.net – Web API中的客户端证书和基于声明的身份
- asp.net-membership – 如何在成员资格提供者上实现最佳自定
- asp.net-mvc – 在多层应用程序中使用IoC时避免程序集引用
- asp.net-mvc-4 – 在常规MVC项目中使用breeze而不
- 增加堆栈大小IIS ASP.NET 3.5
- ASP.NET – 黑客死亡的黄色屏幕
- ASP.NET Web API,Web服务发现和客户端创建
- ASP MVC Razor在输入占位符中编码特殊字符
- asp.net-mvc – 测试使用DbContext的存储库的最佳
- asp.net-mvc – 具有Microsoft.AspNet.Identity的
- asp.net-webpages – Razor代码块使用
- asp.net-mvc – asp fontawesome 404(未找到)
- asp-classic – 如何统计ASP经典中的记录?