2012-03-05 17 views
6

私はasp.netグローバルリソースを使用して2言語のWebサイトを実装しようとしています。グローバルリソースファイルにシンプルリソースを追加しました。含まエンUs.resxasp.netグローバルリソースエラー 'キーを持つリソースオブジェクトが見つかりませんでした'

Password | Text 
Email | Text 

は、デフォルトのページ内のテキストボックスにそれを実装:

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

が、私はlocalhostのページを実行し、これまでとき、私はこのエラーを取得します:

The resource object with key '' was not found

私はasp.net 4.0を使用していますが、何が問題ですか?

答えて

13

リソースファイルのフォーマットはResourceName.culture.resx

が Main.resx呼ばApp_GlobalResourcesフォルダ内のリソースファイルを作成します。これはデフォルトの文化(すなわち不変)

用で、これはそうでEN-USの文化が生きるための場所すべてのリソースで、リソースファイル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)まで処理します。

必要に応じて「メイン」の名前を変更してください。

+0

は完璧に動作します、ありがとうございました – Wahtever

+0

私2つの異なるキーすなわち電子メールとメッセージがありますが、ページの終わりに私は電子メールメッセージを表示する必要があります既存の2つのキーをマージすることができますか新しいメールを作成する必要があります –

+0

両方を表示する必要がある場合は、 2 <%$ %>、各キーに1つ –

-1
  1. ファイル名をen-US.aspx.resxに変更して、もう一度お試しください。 thisヘルプを参照してください。
  2. ビルドアクションを変更して、何が起こるかを確認してください。参照してくださいhere
+0

名前を変更しようとしても、同じエラーがスローされます。私はこれがローカルリソースのためだと思う。 – Wahtever

+0

これをチェックしてください。 http://stackoverflow.com/questions/5744695/the-resource-object-with-key-key-was-not-found-auto-deployed-asp-net-mvc3-a – Mitul

関連する問題