我的资源文件有一个奇怪的问题。奇怪,因为它工作得很好。 好吧,我有一些资源文件。我在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,它就会失败!
答案 0 :(得分:0)
我认为你也可以编写一个自定义助手,它将通过反射字符串返回。