MVC 4とRazor ビューを使用していますが、日付フィールドの編集ビューが組み込みの jQuery 日付ピッカーに適切にバインドされない理由を理解できません。
フィールドはDate
、データベースおよびDateTime
ドメイン モデルのデータ型です。時間は表示せず、日付のみを表示します。このフィールドは必須であり、書式設定が必要です。
私の見解は次のようになります:
<div class="editor-label">
@Html.LabelFor(model => model.Appointment.EndDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Appointment.EndDate)
@Html.ValidationMessageFor(model => model.Appointment.EndDate)
</div>
このフィールドのメタデータが
[Required(ErrorMessage = "End Date must be a valid date, like 05/13/2016.")]
[DataType(DataType.Date)]
[Display(Name = "End Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public object EndDate { get; set; }
次に、edit.cshtml のエディター出力は次のとおりです。
<input class="text-box single-line" data-val="true" data-val-date="The field End Date must be a date." data-val-required="End Date must be a valid date, like 05/13/2016." id="Appointment_EndDate" name="Appointment.EndDate" type="date" value="05/09/2013">
これはjQueryの日付ピッカーを描画しますが、値を設定しません。
メタデータから DataType 属性を削除し、他のすべてをそのままにしておくと、次のようになります。
[Required(ErrorMessage = "End Date must be a valid date, like 05/13/2016.")]
[Display(Name = "End Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public object EndDate { get; set; }
次に、私のエディター出力は次のとおりです。
<input class="text-box single-line valid" data-val="true" data-val-date="The field End Date must be a date." data-val-required="End Date must be a valid date, like 05/13/2016." id="Appointment_EndDate" name="Appointment.EndDate" **type="datetime"** value="05/09/2013">
これにより、値が適切に設定されたプレーン テキスト ボックス (datepicker なし) が描画されます。
日付ピッカーを使用したいのですが、正しい値を設定するにはどうすればよいですか?