我已在遵循此文档的情况下在我的项目中添加了本地化:
https://docs.microsoft.com/en-gb/aspnet/core/fundamentals/localization?view=aspnetcore-2.2
它能按预期工作,但我遇到了问题。有时我需要显示模式窗口(例如,以确认注销请求),但是我还没有找到使用语言资源来处理它的最佳方法。
我尝试使用javascript创建这些模式,但没有找到一种与javascript共享资源文件的干净方法。
我也尝试使用局部视图,但是发现的唯一解决方案是使用Ajax请求从服务器检索视图。乍一看,我以为我的问题已经解决了,但是我意识到,如果无法从服务器中检索到我的视图,我将无法以正确的语言显示错误消息,因为我的javascript无法访问资源文件。 / p>
我想知道什么是最好的进行方法。我希望我的解释很清楚。
谢谢您的帮助
答案 0 :(得分:1)
该框架提供了一种在视图(this part of the documentation)中使用资源的方法,因此,您可以做的是将modal窗口默认隐藏在html中,并在需要时使用javascript切换其可见性。 / p>
呈现视图时,所有资源字符串将被替换,因此无需进行服务器调用即可获取它们。
是这样的:
视图
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
// html of the view
<div id="error_modal" class="modals">
<span>@Localizer["The error message"]</span>
</div>
使用CSS规则
.modals
{
visibility: hidden;
}
然后使用javascript显示或隐藏div(仅作为示例,执行此操作的方式取决于您使用的javasript库)。
希望很清楚,这就是您所需要的。