我正在使用多种语言构建网站,并希望根据语言自定义asp-action
。我们的想法是,英文版本中的网址类似于/en/feedback
,而德语中的网址应为/de/gaestestimmen
。
我尝试了以下内容:
<a asp-controller="Home"
asp-action="@Localizer["navKontakt"]"
asp-route-lang="@CultureInfo.CurrentCulture.TwoLetterISOLanguageName">
@Localizer["navFeedback"]
</a>
Localizer在第二个实例中返回正确的文本,但不在asp-action
中返回 - 它返回:
“Microsoft.AspNetCore.Mvc.Localization.LocalizedHtmlString
”而不是预期的字符串。
如果我只是输入asp-action="Feedback"
,它就可以正常工作。
任何人都知道如何才能使这项工作?
答案 0 :(得分:1)
找到答案。由于本地化程序返回LocalizedHtmlString,它是一个对象而不是一个字符串,我必须添加.Value来获取值作为字符串。
asp-action="@Localizer["navKontakt"].Value"
答案 1 :(得分:0)
看起来像是报价问题。尝试使用单引号切换属性值的双引号:
<a asp-controller="Home"
asp-action='@Localizer["navKontakt"]'
asp-route-lang="@CultureInfo.CurrentCulture.TwoLetterISOLanguageName">
@Localizer["navFeedback"]
</a>