我正在尝试使用多语言路由...
我已经为路由映射创建了资源文件,就像这里
关键 价值
德国大学德国大学 //(zh-CN)
German-university deutschland-universitat //(de-DE)
...........
在 routeconfig 中,我尝试了多种使用可选参数和没有可选参数的方法,但无法为Url.Action获得正确的结果
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
#region Universite
ResourceManager myResourceClass =
new ResourceManager(typeof(RouteResource));
var langs = new List<string>();
langs.Add("tr-TR");
langs.Add("de-DE");
langs.Add("ar-Sa");
langs.Add("en-US");
foreach (string lang in langs)
{
ResourceSet resourceSet =
myResourceClass.GetResourceSet(new System.Globalization.CultureInfo(lang), true, true);
routes.MapRoute(
name: "UnvUlkeEyaletSehir"+lang,
url: "{language}/" + resourceSet.GetString("german-university") + "/{ulke}/{eyalet}/{sehir}",
defaults: new
{
controller = "Universite",
action = "ShowUniversiteKursuMenu",
language=lang,
ulke = "",
eyalet = "",
sehir = "",
}
);
}
#endregion
foreach (var lang in langs)
{
routes.MapRoute(
name: "Default" + lang,
url: "{language}",
defaults: new { controller = "Home", action = "Index", language = lang }
);
}
routes.MapRoute(
name: "Default-en-US-",
url: "",
defaults: new { controller = "Home", action = "Index" }
);
我的 Url.Action 和结果
Url.Action("ShowUniversiteKursuMenu","Universite",new{ language= Thread.CurrentThread.CurrentUICulture })
我想要的结果,如果我改变语言
de-DE/德国大学
en-US/德国-大学
这不应该工作,也不是结果,但结果是这样的......
de-DE/德国大学
ar-SA/德国大学
tr-TR/德国大学