首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ASP.NET MVC中本地化/转换路由

在ASP.NET MVC中本地化/转换路由
EN

Stack Overflow用户
提问于 2011-06-03 22:28:11
回答 6查看 3K关注 0票数 18

有谁知道在ASP.NET MVC中本地化路由的好办法吗?我想要实现的是这两个urls指向相同的操作/资源:

此外,还应该可以根据当前文化(如果没有可用的翻译,则为默认文化)生成路由。或者,如果我能够指定一个区域性,这样上面的两个链接中只有一个可以工作,那也是可行的。

我尝试了very nice approach by Maarten Balliauw,但不幸的是,他的解决方案不适用于Html.RenderAction(...)

当然,我可以只为所有翻译添加路由,比如

代码语言:javascript
复制
routes.MapRoute(
    "Products_Categories",
    "Produkte/Kategorien",
    new { controller = "Products", action = "Categories" }
);

但这最终会导致大量的路由,而且非常不灵活。任何更好的解决方案都将不胜感激:-)越灵活越好。

EN

回答 6

Stack Overflow用户

发布于 2011-07-01 07:33:03

这可能是管理所有路径或其某些变体的可行方法,例如在XML文件中定义路径

http://www.iansuttle.com/blog/post/ASPNET-MVC-Store-Routes-in-the-Database.aspx

您最终仍然会有大量的路由,但是管理它们将会简单得多

票数 2
EN

Stack Overflow用户

发布于 2012-03-12 11:14:40

你可以试试我刚刚找到的一个很棒的AttributeRouting项目!你可以通过NuGet获取它。

票数 2
EN

Stack Overflow用户

发布于 2018-07-16 15:59:38

有关基于属性和传统路由的的简单解决方案,请访问https://github.com/boudinov/mvc-5-routing-localization

您可以将其与/de前缀一起使用,因为它是首选模式。您需要在资源文件中将'Products‘和'Categories’翻译成德语:

LocalizedRoute(“~/产品/类别”,translateUrl: true ActionResult索引(...)

或者对原始问题的工作答案,没有语言前缀,你可以得到这样的结果:

LocalizedRoute("~/Products/Categories",translateUrl: false,explicitCulture:"en") ActionResult索引(...)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6228366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档