问题描述
我正在尝试使用多语言路由...
我已经为路由映射创建了资源文件,就像这里
键 值
german-university German-university //(en-US)
德国大学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: "",action = "Index" }
);
我的 Url.Action 和结果
Url.Action("ShowUniversiteKursuMenu","Universite",new{ language= Thread.CurrentThread.CurrentUICulture })
我想要的结果,如果我改变语言
de-DE/deutschland-universitat
en-US/德国大学
这不应该工作,也不会作为结果,但结果是这样的......
de-DE/德国大学
ar-SA/德国大学
tr-TR/德国大学
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)