Actualy我通过将文化传递到像
这样的网址来处理我的ASP.NET MVC 3.0网站的全球化我在Global.asax中使用以下路线
routes.MapRoute("Default", "{language}-{culture}/{controller}/{action}/{id}",
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
language = "fr",
culture = "FR"
});
现在,我需要将访问网站根http://mysite.com的用户重定向到默认区域性或默认浏览器区域http://mysite.com/en-US。
实际上,在没有文化规范的情况下访问根URL时,用户会收到404错误。
我该怎么做?
感谢。
答案 0 :(得分:1)
我认为你真的需要两条路线,在路线的长路上你需要一个constraint来避免路线冲突(实际上你可能不会因为你使用短划线“ - ”,只要你在控制器名称中没有破折号)。这样的事情: -
routes.MapRoute("Default", "{language}-{culture}/{controller}/{action}/{id}",
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
}
,
new
{
language = @"[a-z][a-z]|^",
culture = @"[A-Z][A-Z]|^"
});
routes.MapRoute("DefaultLocale", "{controller}/{action}/{id}",
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
language = "fr",
culture = "FR"
});