【发布时间】:2019-01-30 08:58:11
【问题描述】:
目前我正在使用 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 未明确指定,是否有一种智能方法可以强制它继承当前路由值?
提前谢谢你。
【问题讨论】:
标签: asp.net-core asp.net-core-mvc asp.net-core-2.2 asp.net-core-routing