2017-10-21 93 views
1

我试图使ASP.NET Core 2.0应用程序多语言。我在一个名为“Resource.it.resx”的资源文件夹下创建了一个资源文件。我将其访问修饰符设置为Public,并将其名称空间设置为Resources。ASP.NET Core 2.0:资源命名空间不可见

在(重新)构建解决方案后,我无法在cshtml代码中的C#代码中看到此名称空间。

是否有其他一些步骤?

回答

1

有你需要考虑两件事情:

  1. 只有Resource.resx生成一个命名空间,特定的文化资源,如Resource.it.resx不会产生命名空间。这是预期的行为。
  2. ASP.NET Core的本地化实践建议不要直接使用资源,而是使用IStringLocalizer找到本地化的字符串。

我建议你阅读ASP.NET Core本地化基础in the official MSDN guide。在那里你可以找到在控制器,视图和需要它们的地方对字符串进行本地化的例子。

1

首先检查您的资源命名空间是否在控制器中可见, (如Resources.Resource)中可见。

我还没有,在这种情况下,我创建了一个emtpy资源类,例如。我的资源名称是ServiceResources.en-US.resx,在同一个文件夹中我也有ServiceResources.cs空类。

检查您是否已正确使用IStringLocalizer类在_ViewImports.cshtml中导入了您的名称空间。