具有 ASP.NET 核心的锚标记助手中的自定义路由
Custom routing in anchor tag helper with ASP.NET Core
在我的控制器中,我使用的是路由:
[Route("/{culture}/contact")]
//action signature
所以我需要使用一个culture
参数。直接在浏览器中输入url:https://localhost:44361/en/contact
也是一样显示url,没问题。
在 cshtml
中,我使用的锚点如下:
<a class="mainButton" rel="canonical" asp-controller="Home" asp-action="Contact" asp-route-culture ="@ViewBag.Culture">contact</a>
并且锚点在浏览器中为我生成了一个 url:https://localhost:44361/contact?culture=en
如何让我的主播产生这个? https://localhost:44361/en/contact
一种方法是继承 RequestCultureProvider class。
还有另一种方法可以使用内置的 RouteDataRequestCultureProvider class 获得相同的结果(它已在 ASP.NET Core 1.1 中引入)。
可以参考这篇文章
一天结束时,我使用的方法是从控制器发送带有文化代码的 ViewBag
,并在视图中构建 url,如下所示:
<div><a class="mainButton" rel="canonical" hreflang="@ViewBag.Culture" href="/@ViewBag.Culture/services">@Localizer["services"]</a></div>
在我的控制器中,我使用的是路由:
[Route("/{culture}/contact")]
//action signature
所以我需要使用一个culture
参数。直接在浏览器中输入url:https://localhost:44361/en/contact
也是一样显示url,没问题。
在 cshtml
中,我使用的锚点如下:
<a class="mainButton" rel="canonical" asp-controller="Home" asp-action="Contact" asp-route-culture ="@ViewBag.Culture">contact</a>
并且锚点在浏览器中为我生成了一个 url:https://localhost:44361/contact?culture=en
如何让我的主播产生这个? https://localhost:44361/en/contact
一种方法是继承 RequestCultureProvider class。
还有另一种方法可以使用内置的 RouteDataRequestCultureProvider class 获得相同的结果(它已在 ASP.NET Core 1.1 中引入)。
可以参考这篇文章
一天结束时,我使用的方法是从控制器发送带有文化代码的 ViewBag
,并在视图中构建 url,如下所示:
<div><a class="mainButton" rel="canonical" hreflang="@ViewBag.Culture" href="/@ViewBag.Culture/services">@Localizer["services"]</a></div>