【问题标题】:How can I localize an asp-action using Localizer如何使用 Localizer 本地化 asp-action
【发布时间】:2016-09-15 15:20:21
【问题描述】:

我正在建立一个多语言的网站,并希望根据语言自定义 asp-action。这个想法是英文版中的 URL 类似于 /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"它就可以了。

有谁知道我可以如何完成这项工作?

【问题讨论】:

    标签: c# razor asp.net-core asp.net-core-mvc


    【解决方案1】:

    找到答案。由于本地化程序重新调整了 LocalizedHtmlString 这是一个对象但不是字符串,我必须添加 .Value 才能将值作为字符串获取。

    asp-action="@Localizer["navKontakt"].Value"
    

    【讨论】:

    • 这类似于this question。我发现这种语法不一致,我怀疑它是否是设计使然。
    【解决方案2】:

    看起来像引号问题。尝试用单引号将属性值的双引号换掉:

    <a asp-controller="Home"
        asp-action='@Localizer["navKontakt"]'
        asp-route-lang="@CultureInfo.CurrentCulture.TwoLetterISOLanguageName">
        @Localizer["navFeedback"]
    </a>
    

    【讨论】:

      猜你喜欢
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多