【发布时间】:2018-04-18 23:34:42
【问题描述】:
我正在构建一个支持阿尔巴尼亚语、英语和塞尔维亚语的多语言网站,但不知何故,从标签助手生成的所有链接都不断重定向到塞尔维亚语。
这就是我在StartUp.cs 中的内容:
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("sq-AL"),
new CultureInfo("en-US"),
new CultureInfo("sr-Latn-RS")
};
var localizationOptions = new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("sq-AL"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
};
var requestProvider = new RouteDataRequestCultureProvider();
localizationOptions.RequestCultureProviders.Insert(0, requestProvider);
app.UseRouter(routes =>
{
routes.MapMiddlewareRoute("{culture=sq-AL}/{*mvcRoute}", subApp =>
{
subApp.UseRequestLocalization(localizationOptions);
subApp.UseMvc(mvcRoutes =>
{
mvcRoutes.MapRoute(
name: "default",
template: "{culture=sq-AL}/{controller=Home}/{action=Index}/{id?}");
});
});
});
这是我在主导航菜单中的操作链接:
<a asp-controller="Content" asp-action="About">@_localizer["nav_about"]</a>
它曾经运行良好,我试图弄清楚为什么它不再运行但至今不知道。
有趣的是,所有标签都根据所选文化从资源文件中获取值,无论我切换到哪种文化,链接都会不断重定向到塞尔维亚语。从上面的标签助手生成的链接:http://localhost:50807/sr-Latn-RS/Content/About。
提交表单也是如此:<form asp-controller="Account" asp-action="RegisterProfile" method="post"> 结果到http://localhost:50807/sr-Latn-RS/Account/RegisterProfile,无论当前选择哪种文化。
有人知道塞尔维亚文化从何而来吗?任何形式的帮助将不胜感激!
【问题讨论】:
标签: c# asp.net-core culture asp.net-core-tag-helpers