asp.net-mvc – 如何在MVC选择路由之前添加路由参数
我正在尝试为现有的MVC 3应用程序添加对不同语言的支持.到目前为止,我的链接是
oldUrl -> myapp.com/Item/Details/5/some-title 网站上有不同地方的网站链接.但是现在我想更改URL以便包含语言: newUrl -> kmyapp.com/en/Item/Details/5/some-title 但是我希望oldUrl链接有效.问题是如何做到这一点…最简单的方法是添加另一条路线,但我已经有太多它们而且它变得有点丑陋,当我从一个不创建的网页创建网址时有语言链接也没有语言所以我必须做其他事情. 另一种方法是覆盖在MVC尝试将请求映射到特定路由之前的某些东西,但是已经解析了请求URL并填充了routeValues字典.所以我可以检查语言,如果它没有包含在路由参数中,我可以自己添加它并调用父类的实现继续.那可能吗?我应该注意什么 – UrlRoutingModule,MvcHttpHandler或其他什么?我可以覆盖什么以及如何告诉MVC使用我的版本? 任何其他想法也将不胜感激! 解决方法
另一种方法是覆盖在MVC尝试将请求映射到特定路由之前的某些东西,我可以自己添加它并调用父类的实现继续.那可能吗?
您可以覆盖其中包含URL详细信息的GetRouteData in RouteBase. public override RouteData GetRouteData(HttpContextBase httpContext) { string url = httpContext.Request.AppRelativeCurrentExecutionFilePath; }
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.Add(new MyUrlRoute()); // Add before your default Routes routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",// URL with parameters new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults );
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在ASP.NET MVC4中使用具有唯一标识符UR
- .net – UpdatePanel中的FileUpload控件,不刷新整个页面?
- ASP.NET Core使用Ping判断网络是否接通
- asp.net-mvc – MVC3验证与实体框架模型/数据库首先
- asp.net阻止表单提交两次
- asp.net – SqlException(0x80131904):第28行:'(‘.)
- asp.net – 为什么aspx代码隐藏文件被声明为部分类?
- asp.net-mvc – 存储库模式 – 如何正确处理JOIN和复杂查询
- asp.net – 可接受的安全性:使用Paramatised SQL和HTML编码
- asp.net-mvc – 无法使用ASP.NET(MVC 4)加载文件或程序集Sy
- asp.net – 将图像转换为字节以存储在数据库中
- asp.net-mvc – 如何用Fluent语法编写HtmlHelper
- asp.net – Outputcache:VaryByHeader =“User-
- 在IIS中零停机上传/回滚
- 在ASP.NET上启动维护流程的最佳实践是什么
- asp.net-mvc – ASP.NET MVC Validation将类添加
- asp.net – 值得学习经典ASP?
- asp.net-mvc – 如何在c#/ asp.net中使用jquery或
- ASP.NET Web API 2:通过本机移动(iOS)应用程序与
- asp.net-mvc-3 – 如何在MVC3中限制FileUpload中