2011-08-02 16 views
0

私は単純なNet 3.5/Mvc2サイトでローカルリソースとグローバルリソースの両方を使用しようとしています。Asp.Netリソースの混乱

まず、グローバルリソースで検証メッセージを設定しようとしましたが、最初の問題が発生しました。DataAnnotations属性でグローバルリソースを設定するとエラーは発生しませんが、実行時には実行時のエラーのいずれか)。サンプルコード:

[Required(
     ErrorMessageResourceType = typeof(Resources.Global), 
     ErrorMessageResourceName = "LastNameRequired")] 
    public string LastName { get; set; } 

グローバルリソースpublicに設定(私はそれが問題だと思う)ので、私はローカルリソースにDataAnnotationsで使用されるようにメッセージを移動するために考えることはできません。

[Required(
     ErrorMessageResourceType = typeof(Views.MyApp.App_LocalResources.Apply_aspx), 
     ErrorMessageResourceName = "LastNameRequired")] 
    public string LastName { get; set; } 

に私をもたらしました2つの別の問題:ローカルリソースをaction =コンテンツを構築するように設定した場合、リソースはGetLocalResourceObjectメソッドを使用して正しく読み込まれますが、DataAnnotationsから読み込もうとすると次のようになります:

指定されたカルチャまたは中立文化に適したリソースが見つかりませんでした。正しく埋め込まれたまたはアセンブリ「MyNamespace.Website.Mvc」にリンクされ、コンパイル時に、または必要なすべてのサテライトアセンブリをロード可能であり、完全にということでした「MyNamespace.Website.Mvc.Views.MyApp.App_LocalResources.Apply.aspx.resources」を確認してください署名された

それから私は、ビルドアクション=埋め込みリソースを設定しようとしました。この方法でApp_LocalResourcesフォルダは公表されない、とGetLocalResouceObjectでビューからローカルリソースを読み取ろうとするとき、私は次のエラーを取得する:

このページのリソースクラスが見つかりませんでした。リソースファイルが存在するかどうかを確認し、再試行してください。

私は明らかに解決のためにGoogleを試みましたが、私のシナリオに似ているものは見つかりませんでしたので、私はここで尋ねています。

私はevertythingを滑らかにするために行うには何を持っていますか?

ありがとうございました。

答えて

0

自分自身でさらに掘り起こす方法を見つけました。

私はコードからビュー]フォルダで宣言された「LocalResources」を使用しようとしていました。それが問題でした。

アクションの右側のコースは、ビューに対してだけそれらのリソースファイルを使用しています。次に、コードのために、ルートレベルでApp_LocalResourcesフォルダを宣言し、そこにリソースファイルを置いてpublicに設定します。

これはうまくいきました。