すべてのint
フィールドのメッセージを変更して、次のように言うのではなく、
The field must be a number
英語では、次のように表示されます。
El campo tiene que ser numerico
スペイン語で。
方法はありますか?
ASP.NET MVC 4以降を使用している場合は、この投稿を確認してください。
ASP.NET MVCおよびWebFormsのデフォルトエラーメッセージのローカライズ
基本的に、_Global.asax
_のApplication_Start()
メソッドに次のコードを追加する必要があります。
_ ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
DefaultModelBinder.ResourceClassKey = "Messages";
_
Visual Studio内のソリューションエクスプローラーでASP.NET MVCプロジェクトを右クリックし、_Add => Add ASP.NET Folder => App_GlobalResources
_を選択します。
次に、このフォルダー内に_.resx
_という名前の_Messages.resx
_ファイルを追加します。
最後に、その_.resx
_ファイルに次の文字列リソースを追加します。
_Name Value
==== =====
FieldMustBeDate The field {0} must be a date.
FieldMustBeNumeric The field {0} must be a number.
PropertyValueInvalid The value '{0}' is not valid for {1}.
PropertyValueRequired A value is required.
_
あなたは行ってもいいはずです。
興味のある値はFieldMustBeNumeric
であることに注意してください。 Spanishにローカライズするには、_Messages.es.resx
_という名前の別のリソースファイルを追加する必要があります。この特定の_.resx
_ファイルで、リソース値を次のものに置き換えます。
_Name Value
==== =====
FieldMustBeNumeric El campo {0} tiene que ser numerico.
_
ASP.NET MVC 3を下向きに使用している場合、このソリューションは同じ結果を達成するのに役立ちます。 https://stackoverflow.com/a/2551481/114029
検証用にカスタムメッセージを設定できます。
[RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
public decimal UnitPrice { get; set; }
Integer、double、およびfloatごとにカスタムメッセージを指定する場合。以下のように文字列で範囲属性を使用できます。
[Required(ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "YearOfEstablishmentRequired")]
[Range(0, int.MaxValue, ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "ValidYearOfEstablishment")]
[Display(Name = "Year Of Establishment")]
public string YearOfEstablishment { get; set; }
上記のように、すべてのプロパティに対してカスタムメッセージを指定できます。