如何解决MVC MapRoute 可选参数使用如默认值
我正在尝试使用多语言路由...
我已经为路由映射创建了资源文件,就像这里
键 值
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 举报,一经查实,本站将立刻删除。