如何在控制器中的.net core 2中使用共享资源进行本地化?

时间:2018-02-07 19:10:31

标签: asp.net-core-mvc-2.0 asp.net-core-localization

在.net框架中使用多年的webform应用程序多年后,我是.net核心开发的新手。

我尝试本地化一个新项目并查看为此特定用途确定的选项,即共享资源是长期最易维护的解决方案,并遵循此示例:https://damienbod.com/2017/11/01/shared-localization-in-asp-net-core-mvc/

这似乎非常适合在视图中添加本地化数据,但我很难在控制器中执行此操作,例如在服务器端捕获某些内容时返回本地化错误并返回自定义消息。< / p>

在我的控制器中,我添加了

private readonly LocService _SharedLocalizer;

如果我尝试添加

,在控制器的视图方法中
ViewBag.localizedmessage = _SharedLocalizer.GetLocalizedHtmlString("message")

访问此行的页面时出现空错误。

如果我在视图方法中创建一个新实例,我不确定要提供什么作为IStringLocalizerFactory的参数值。

_SharedLocalizer = new LocService();

我缺少的是什么,或者如何正确访问控制器中的共享资源?

1 个答案:

答案 0 :(得分:0)

尝试一下

public class YourController : Controller
{
    private readonly LocService _SharedLocalizer;
        public YourController(LocService localizer)
        {
            _SharedLocalizer = localizer;
        }
}