2012-03-05 107 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