在支持多种文化的网站中,我打算采用以下路线:
routes.MapRoute(
"ProductsStartPage",
"{lang}/Products",
new { lang = defaultLanguage, controller = "Products", action = "Index" }
);
routes.MapRoute(
"ProductsCategoryPage",
"{lang}/Products/{category}",
new { lang = defaultLanguage, controller = "Products", action = "Category" }
);
routes.MapRoute(
"ProductPage",
"{lang}/Products/{category}/{product}",
new { lang = defaultLanguage, controller = "Products", action = "Product" }
);
第二种语言将在网址中使用 Produkter 而非产品。
如果不为每种语言/文化创建另一个MapRoute,我将如何继续完成这项工作?
答案 0 :(得分:2)
我不会害怕为每种语言创建另一条路线。
路线中控制器的值是必不可少的。这是您要更改的值,因此您需要一个可以为每种语言保留不同值的位置。
然后,在映射路由时,我只需循环访问支持的语言,并为您支持的每种语言调用MapRoute,并提供控制器名称的本地化值。
请注意,您需要唯一的路由名称,因此您应在循环中追加或添加语言名称/代码,以便创建具有唯一名称的路由。