そのようなサイト構造があるとしましょう:
App_LocalResources
|-A.aspx.resx
|-B.aspx.resx
A.aspx
B.aspx
ここで、A.aspx.csでHttpContext.GetLocalResourceObject( "〜/ A.aspx"、 "Key1")を使用しますが、正常に動作します。しかし、B.aspx.csでHttpContext.GetLocalResourceObject( "〜/ A.aspx"、 "Key1")を使用すると、例外がスローされます。
このページのリソースクラスが見つかりませんでした。リソースファイルが存在するかどうかを確認して、再試行してください。
例外の詳細:System.InvalidOperationException:このページのリソースクラスが見つかりませんでした。リソースファイルが存在するかどうかを確認して、再試行してください。
この問題を解決するにはどうすればよいですか?外部ページからローカルリソースを読み取りたいのですが、.resxファイルを自分で読み取りたくありません。ありがとう :-)
更新:私の場合、いくつかの「data.xml」ファイルがあり(それらは異なるディレクトリにあり、のような要素があります<key name='Key1' value='value1' />
)、それらのコンテンツはhtmlとしてレンダリングされます。
ただし、data.xmlのキー名は、レンダリングする前にローカライズする必要があります(異なるdata.xmlには異なるキーが含まれています)。
たとえば、data.xmlには次のような要素があります。
<key name='CategoryId' value='3' />
結果のhtmlページに、en-USカルチャの場合は「CategoryId = 3」、zh-CNカルチャの場合は「クラスM=3」などを表示したいと思います。
したがって、フォルダー内にパターン " data.xml.??-??.resx
"に従っていくつかのファイルを作成し、foreachdata.xmlを使用してローカライズされたキー名を取得できると思います。そうすれば、自分でxmlを読む必要はありません。出来ますか?App_LocalResources
HttpContext.GetLocalResource()