0

App_GlobalResourcesmvc3モデルのDataAnnotationsを含むフォルダーに保存されているresxファイルからの変換を使用しています。

で正常に動作しますがRequired DataAnnotation、を使用しようとすると動作しなくなりDisplay DataAnnotationます。

これが私のコードです:

[Required(ErrorMessageResourceType = typeof(Resources.Error), ErrorMessageResourceName = "RequiredClientName")]
[Display(Prompt = "ClientName", ResourceType = typeof(Resources.Front))]
public string Name { get; set; }

ASystem.InvalidOperationExceptionは私が置いたときにのみスローされますDisplay DataAnnotation

これが完全な例外です(申し訳ありませんが、英語に翻訳する方法が見つかりませんでした):

Impossiblederécupérerlapropriété'Prompt'enraisondel'échecdelalocalization。Le type'Resources.Front' n'est pas public ou necontientpasunepropriétédechaînestatiquepubliqueaveclenom'FooterAbout'。

説明:Une例外nongérées'estproduiteaumomentdel'exécutiondelarequêteWebactuelle。Contrôlezlatracedela tile pour plus d'informations sur l'erreur et son origine danslecode。

Détailsdel'exception:System.InvalidOperationException:Impossiblederécupérerlapropriété'Prompt'enraisondel'échecdelalocalization。Le type'Resources.Front' n'est pas public ou necontientpasunepropriétédechaînestatiquepubliqueaveclenom'FooterAbout'。

私が使用しているモデルはに保存されていAreaます。_Layoutまた、から、またはからresxファイルの値にアクセスできます。Required DataAnnotation

ご協力ありがとうございました

フローレント。

4

1 に答える 1

1

エラーメッセージは一目瞭然です(フランス語を話さないサイトの視聴者向けに翻訳しています):

ローカリゼーションに失敗したため、プロパティ 'Prompt' を取得できません。タイプ 'Resources.Front' は公開されていないか、'ClientName' という名前の公開静的文字列プロパティを含んでいません。

RESX ファイルのプロパティでカスタム ツールPublicResXFileCodeGeneratorとビルド アクションを設定して、リソース ファイルを公開する必要があります。Embedded Resource

ここに画像の説明を入力

その理由は、既定では、生成された厳密に型指定されたクラスが内部であり、実行時に別のアセンブリにコンパイルされる Razor ビューからアクセスできないためです。

于 2012-07-05T16:25:26.880 に答える