私は次のフィールドを持っています:
@Html.TextBoxFor(model => model.Patient.dateOfBirth, new { id = "datepicker", @class = "double text white" })
これは、次のメタデータ定義を持つDateTimeフィールドです。
[Required(ErrorMessage = "Date Of Birth is required")]
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime dateOfBirth;
問題は、DOBをd / m / yとして表示するために必要ですが、日時の原因として、DateTimeのままにする値を必要とするdatepickerを使用していることです。
日付ピッカーは、dd / mm/yy形式の値を返します。(.ToShortDateString()は今回私を救うことができません)
私はこことここからDarinDimitrovAnswersを試しましたが、私が完全なバカでない限り、それらは私にとって実際には機能しません。
後で編集:
私はこれに対する解決策を見つけることができ、これからそれを必要とする人と共有したいと思いました。
@Html.HiddenFor(model => model.DOBirth, new { id = "shortDate", @class = "double text white" })
@Html.TextBox(" ", Model != null ? Model.dateOfBirth.Value.ToShortDateString() : string.Empty, new { id = "datepicker", @class = "double text white" })
そして、次のJqueryを使用します。
$('#datepicker').datepicker({
changeMonth: true,
changeYear: true,
inline: true,
onSelect: function (dateText, inst) { CalculateAge(dateText); } //an extra method
});
隠しフィールドに取得した値を(隠しフィールド "shortDate"のIDを介してJquery経由で)保存します。これにより、値をコントローラーに送り返すことができます。