В настоящее время я использую ASP.NET Core 2.2 MVC для сборки своего приложения, используя обычный маршрут шаблона:
routes.MapRoute(
name: "default",
template: "{culture:required}/{area:slugify:exists}/{controller:slugify}/{action:slugify}",
defaults: new
{
area = "Home",
controller = "Home",
action = "Index"
});
В /Areas/Home/Views/Home/Index.cshtml
я попытался написать следующее и ожидать что-то вроде "http://localhost/en-US/Home/Home/AboutUs" будет сгенерировано, но оно просто не работает:
<a
asp-area="Home"
asp-controller="Home"
asp-action="AboutUs">
About Us
</a>
Вместо этого явно указывается культура:
<a asp-area="Home"
asp-controller="Home"
asp-action="AboutUs"
asp-route-culture="en-US">
About Us
</a>
Однако, поскольку мой сайт содержит тонныиз ссылок, я не хочу загрязнять все теги CultureInfo.CurrentCulture.Name
. Есть ли умный способ заставить его наследовать текущее значение маршрута, если явно не указано asp-route-culture
?
Заранее спасибо.