2012-03-05 98 views
6

我使用asp.net全球资源,试图实现两个语言的网站,我在被称为全球资源文件添加一个简单的资源包含EN-Us.resxasp.net全球资源错误“‘与关键资源对象’未找到”

Password | Text 
Email | Text 

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

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

但是当我过上本地主机运行页面我得到这个错误:

The resource object with key '' was not found

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

回答

13

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

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

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

这是所有的EN-US区域性的资源将生活,等等。

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),父亲的父亲(不变)。

改变“主”的名义,以满足您的需求

+0

完美的作品,谢谢 – Wahtever 2012-03-05 22:14:41

+0

如果我有两个不同的密钥,即电子邮件和消息,但在页面的最后,我要显示的电子邮件消息可以我可以合并两个现有的密钥或我需要创建新的密钥为电子邮件讯息 – 2013-12-18 05:40:07

+0

如果同时显示,在刚刚使用2 <%$ %>,每个键一个 – 2013-12-18 23:27:48

-1
  1. 将您的文件名更改为en-US.aspx.resx并重试。请参阅this帮助。
  2. 尝试改变构建行动,看看会发生什么。见here
+0

试图改变名称,仍然抛出了同样的错误。我认为这只适用于本地资源。 – Wahtever 2012-03-05 21:48:54

+0

检查这一个。 http://stackoverflow.com/questions/5744695/the-resource-object-with-key-key-was-not-found-auto-deployed-asp-net-mvc3-a – Mitul 2012-03-05 21:53:25