小编Dra*_*nov的帖子

如何在MVC选择路由之前添加路由参数

我正在尝试为现有的MVC 3应用程序添加对不同语言的支持.到目前为止,我的链接是

oldUrl -> myapp.com/Item/Details/5/some-title
Run Code Online (Sandbox Code Playgroud)

网站上有不同地方的网站链接.但是现在我想更改URL以便包含语言:

newUrl -> kmyapp.com/en/Item/Details/5/some-title
Run Code Online (Sandbox Code Playgroud)

但是我希望oldUrl链接有效.问题是如何做到这一点...最简单的方法是添加另一条路线,但我已经有太多它们而且它变得有点丑陋,当我从一个不创建的网页创建网址时有语言链接也没有语言所以我必须做其他事情.

另一种方法是覆盖在MVC尝试将请求映射到特定路由之前的某些东西,但是已经解析了请求URL并填充了routeValues字典.所以我可以检查语言,如果它没有包含在路由参数中,我可以自己添加它并调用父类的实现继续.那可能吗?我应该注意什么 - UrlRoutingModule,MvcHttpHandler或其他什么?我可以覆盖什么以及如何告诉MVC使用我的版本?

任何其他想法也将不胜感激!

asp.net-mvc localization internationalization asp.net-mvc-routing asp.net-mvc-3

7
推荐指数
2
解决办法
6366
查看次数