ASP.NET MVC 3中的资源文件问题

时间:2012-08-17 13:49:50

标签: asp.net-mvc-3 localization globalization

我的资源文件有一个奇怪的问题。奇怪,因为它工作得很好。 好吧,我有一些资源文件。我在asp.net mvc 3项目结构上创建了一个Resources文件夹,我正在镜像视图的文件夹结构。现在我有:

Views
   Shared
      _Layout.cshtml

Resources
   Shared
      Layout.pt-BR.resx
      Layout.en-US.resx
      Layout.ko-KR.resx

所有资源文件都配置为嵌入式资源,PublicResXFileCodeGenerator和自定义工具命名空间“ViewRes”。所有“.Designer.cs”文件都是空的。我记得在它工作时会看到一些代码。

在我的.csproj文件中,我有这些数据:

<ItemGroup>
    <EmbeddedResource Include="Resources\Shared\Layout.en-US.resx">
      <SubType>Designer</SubType>
      <Generator>PublicResXFileCodeGenerator</Generator>
      <LastGenOutput>Layout.en-US.Designer.cs</LastGenOutput>
      <CustomToolNamespace>ViewRes</CustomToolNamespace>
    </EmbeddedResource>
    <EmbeddedResource Include="Resources\Shared\Layout.ko-KR.resx">
      <SubType>Designer</SubType>
      <Generator>PublicResXFileCodeGenerator</Generator>
      <CustomToolNamespace>ViewRes</CustomToolNamespace>
      <LastGenOutput>Layout.ko-KR.Designer.cs</LastGenOutput>
    </EmbeddedResource>
    <EmbeddedResource Include="Resources\Shared\Layout.pt-BR.resx">
      <SubType>Designer</SubType>
      <Generator>PublicResXFileCodeGenerator</Generator>
      <LastGenOutput>Layout.pt-BR.Designer.cs</LastGenOutput>
      <CustomToolNamespace>ViewRes</CustomToolNamespace>
    </EmbeddedResource>
  </ItemGroup>

问题是:当我尝试在我的视图上访问@ViewRes时,无法识别它。我已经尝试删除自定义工具命名空间,但@Resource也无法识别。在这两种情况下,我都遇到了这个编译错误:

Compiler Error Message: CS0103: The name 'ViewRes' does not exist in the current context

有人有任何想法吗? 谢谢, 圣保罗

编辑:新信息

我在VS2010中按项目的属性菜单创建了一个全局的Resources.resx文件,它正在使用我输入的自定义工具命名空间。 “资源”命名空间仍无效。我认为问题在于本地资源文件。不幸的是,我需要它们,因为我无法重命名包含文化代码的全局resources.resx文件。

编辑2 我在Resource文件夹上创建了新的.resx文件,我可以看到文件名不能有2“。”。名称是Resources.resx,它可以工作。如果名称是Resource-en-US.resx,它可以工作但是,如果名称是Resources.en-US.resx,它就会失败!

1 个答案:

答案 0 :(得分:0)

我认为你也可以编写一个自定义助手,它将通过反射字符串返回。