任何人都知道一个很好的解决方案来本地化ASP.NET MVC中的路由?我想要实现的是这两个url指向相同的动作/资源:
> http://example.org/Products/Categories(en)
> http://example.org/Produkte/Kategorien(de)
还应该有可能根据当前的文化(或默认,如果没有可用的翻译)生成路线。或者,如果我能够指定一种文化,以便上述两个链接中只有一个可以工作,这也是可行的。
我尝试了一个very nice approach by Maarten Balliauw,但他的解决方案不幸与Html.RenderAction(…)无法使用。
当然,我可以为所有翻译添加路线
routes.MapRoute( "Products_Categories","Produkte/Kategorien",new { controller = "Products",action = "Categories" } );
但是最终会有大量的路线,而且会非常不灵活。任何更好的解决方案将不胜感激:-)更灵活越好。
解决方法
这可能是一种管理所有路由的可行方法 – 或者是其中的一些变体,例如在XML文件中定义路由
http://www.iansuttle.com/blog/post/ASPNET-MVC-Store-Routes-in-the-Database.aspx
您仍然会遇到大量路线,但管理这些路线会更容易一些