假设我有一个这样的网址:
www.site.com/en/home/list/2010-09-30
“en”用于英语,我想确保在网址中始终设置语言标记。如果用户输入www.site.com/home/list/2010-09-30
我希望它将其重定向到www.site.com/en/home/list/2010-09-30
(其中en是默认语言)。
如何在asp.net MVC中最好地完成(如果重要的话,版本是什么版本)?
答案 0 :(得分:2)
这可能最好在自定义HttpModule中处理。我相信您已经知道了,但为了以防万一,您也可以在路线声明中默认路线值“en”。它不会重定向页面,但如果URL中没有文化,那么文化将始终在代码中设置。
context.MapRoute(
"Default",
"{culture}/{controller}/{action}/{id}",
new { culture = "en", action = "Index" });
答案 1 :(得分:0)
一个简单的解决方案是使用通配符路由(这应该位于global.asax文件的底部):
routes.MapRoute(
"WildCard",
"{*url}",
new { controller = "Main", action = "EnglishDefault" }
);
然后你的行动将是:
public ActionResult EnglishDefault (string url)
{
return Redirect("/en/" + url);
}