7

DataTypeErrorMessageが機能しません。MVC4DataTypeErrorMessageが機能していないようです。私はこのdataannotation属性を持っています:

[DataType(DataType.DateTime, ErrorMessage = "Invalid date")]
public override DateTime? BirthDate { get; set; }

ただし、クライアントの検証では次のエラーが返されます。

フィールドBirthDateは日付である必要があります。

これはHTML部分です:

 <input Value="" class="date" data-val="true" data-val-date="The field BirthDate  must be a date." data-val-required="El campo Fecha nacimiento es obligatorio" id="Patient_BirthDate" name="Patient.BirthDate" type="text" value="" />

何か案が?

4

2 に答える 2

8

MVC 4では、ビューのエラーメッセージをHtml.ValidationMessageForで変更できました。
例を参照してください。@Html.ValidationMessageFor(model => model.FechaDesde, "Fecha Inválida")

于 2013-08-24T23:43:32.993 に答える
6

簡単な回答:目的は、誕生日プロパティのエントリDataType.DateTimeを検証することではありません。DateTimeという訳だ。ビューに表示する前に、DateTimeをフォーマットするだけです。

必要なのは[Required]、その上にも属性を持つことです。

ただし、私が通常使用するのはJquery Datepicker であり、ユーザーがテキストを入力することはできませんが、有効な日付を入力することもできます。

編集: ASP.NET MVC 4でモデルプロパティを[DataType(DataType.Date)]既定のテンプレートで装飾すると、type="date"の入力フィールドが生成されます。Google ChromeなどのHTML5をサポートするブラウザは、この入力フィールドを日付ピッカーでレンダリングします。

あなたはコードでこれを強制することができます:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? BirthDate { get; set; }

日付を正しく表示するには、値を次のようにフォーマットする必要があります2012-09-28

于 2012-12-17T15:43:06.360 に答える