如何使用 Localizer 本地化 asp 操作

rBa*_*zer 3 c# razor asp.net-core-mvc asp.net-core

我正在建立一个多种语言的网站,并希望asp-action根据语言进行定制。这个想法是,英语版本中的 URL 类似于,/en/feedback而德语版本中的 URL 应该是/de/gaestestimmen

我已经尝试过以下方法:

<a asp-controller="Home" 
   asp-action="@Localizer["navKontakt"]" 
   asp-route-lang="@CultureInfo.CurrentCulture.TwoLetterISOLanguageName">
     @Localizer["navFeedback"]
</a>
Run Code Online (Sandbox Code Playgroud)

Localizer 在第二个实例中返回正确的文本,但不是asp-action- 它返回:

Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString”而不是预期的字符串。

如果我只是输入asp-action="Feedback"它就可以正常工作。

有人知道我如何才能完成这项工作吗?

rBa*_*zer 5

找到了答案。由于本地化程序返回 LocalizedHtmlString (它是一个对象而不是字符串),因此我必须添加 .Value 以获取字符串形式的值。

asp-action="@Localizer["navKontakt"].Value"
Run Code Online (Sandbox Code Playgroud)