我有以下领域:
@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 的值。
日期选择器返回具有 dd/mm/yy 格式的值。(.ToShortDateString() 这次救不了我了)
我已经从这里和这里尝试了 Darin Dimitrov 的答案,但除非我是一个彻头彻尾的白痴,否则这些对我来说并不适用。
稍后编辑:
我已经设法找到了解决方案,并希望从现在起与任何需要它的人分享。
@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
});
将您获得的值存储到隐藏字段中(通过 Jquery 通过隐藏字段“shortDate”的 id),因此您可以将值发送回控制器