asp.net全局资源错误'找不到具有键''的资源对象'

时间:2012-03-05 21:38:37

标签: asp.net resx multilingual

我正在使用asp.net全局资源来尝试实现一个双语网站,我在全局资源文件中添加了一个名为 en-Us.resx 的简单资源,其中包含:

Password | Text
Email | Text

然后将其实现到默认页面中的文本框:

<asp:TextBox runat="server" ID="loginEmail" Text="<%$ Resources:en-US, Email %>" 
                            ></asp:TextBox>

但是当我在 localhost 上运行页面时,我收到此错误:

  

找不到带有键''的资源对象

我使用的是asp.net 4.0,有什么问题?

2 个答案:

答案 0 :(得分:13)

资源文件的格式为ResourceName.culture.resx

在App_GlobalResources文件夹中创建一个名为的资源文件 Main.resx。这是默认文化(即不变量)

然后创建一个资源文件Main.en-US.resx

这是恩美文化的所有资源都将存在的地方,等等。

Main.resx  
Main.en.resx  
Main.en-US-resx  
Main.en-AU.resx  
Main.fr.resx  
Main.fr-FR.resx  

要从网页访问此内容,请使用语法

<%$ Resources:Main, Email %>

不要担心文化,系统会解决这个问题。它将首先完全匹配(en-US),然后处理那些文化的父(en),父母的父(Invariant)。

更改“Main”的名称以满足您的需求

答案 1 :(得分:-1)

  1. 将您的文件名更改为en-US.aspx.resx,然后重试。请参阅this帮助。
  2. 尝试更改构建操作,看看会发生什么。请参阅here