尝试为我当前的mvc项目设置本地化。 我需要配置路由以支持两个网址:包含和不包含语言(例如www.domain.com/en/about/contacts和www.domain.com/about/contact)。默认语言的URL中没有lang的路由。
我以这种方式定义路线
routes.MapRoute(
name: "Localization",
url: "{lang}/{controller}/{action}/{identifier}",
defaults: new { lang = defaultLang, controller = "Home", action = "Index", identifier = UrlParameter.Optional }
);
但是我无法满足一个重要的要求 - 我的默认语言路由应该只在URL中“lang-less”,直到用户指定所需的语言。即使该语言== defaultLanguage我需要我的路由包括它(lang),因为它是由用户选择的。
答案 0 :(得分:0)
解决!
@ Localization @ Route应如下所示:
routes.MapRoute(
name: "Localization",
url: "{lang}/{controller}/{action}/{identifier}",
defaults: new { controller = "Home", action = "Index", identifier = UrlParameter.Optional },
constraints: new { lang = @"[a-z]{2}" }
);