web-dev-qa-db-ja.com

ASP.NET MVCでデフォルトの検証エラーメッセージを変更するにはどうすればよいですか?

モデルにこのプロパティがあるとします:

_[DisplayName("test")]
[Required(ErrorMessage = "required")]
public DateTime? SomeDate { get; set; }
_

Html.TextBoxFor(model => model.SomeDate)に「asdf」と入力すると、「値 'asdf'はテストに無効です。」という検証エラーメッセージが表示されます。

そのメッセージをどのように変更しますか? ASP.NET MVCは[DataType(DataType.DateTime, ErrorMessage = 'some other message')]を無視しました

28
Sedat Kapanoglu

どうやら私の質問は Asp.net MVC 2のデフォルトのModelStateエラーメッセージを置き換える方法 で既に回答されています。

ここで要約します。

  • プロジェクトのApp_GlobalResourcesフォルダーを作成します(プロジェクトを右クリック->追加-> ASP.NETフォルダーの追加-> App_GlobalResources)。
  • そのフォルダーにresxファイルを追加します。いう MyNewResource.resx
  • リソースキーPropertyValueInvalidを目的のメッセージ形式で追加します(たとえば、「コンテンツ{0}はフィールド{1}に対して無効です」)。 PropertyValueRequiredも変更したい場合は、同様に追加します。
  • コードを追加DefaultModelBinder.ResourceClassKey = "MyNewResource"をGlobal.asaxスタートアップコードに追加します。

設定はすべて完了です。

28
Sedat Kapanoglu

Asp.Net MVC 2-PropertyValueRequired文字列の変更

これはグローバル設定の変更です。

2
takepara
1
Simon Bartlett