我正在尝试使用this jQuery plugin作为我的 ASP MVC edit
页面上的输入掩码。但是,无论数据库中存储什么值,月份始终显示为两个零:00/dd/yyyy
。我已在 Visual Studio 中单步执行代码并检查了数据库中存储的实际值并验证了它是否正确。
这是 View 中的 jQuery。所有其他输入掩码在此页面上均正常工作。 $('#Birthdate')
就是有问题的那个。
$(document).ready(function ($) {
$('#HomePhone').mask("(999) 999-9999? x99999");
$('#BusinessPhone').mask("(999) 999-9999? x99999");
$('#MobilePhone').mask("(999) 999-9999");
$('#FaxNumber').mask("(999) 999-9999? x99999");
$('#Birthdate').mask("99/99/9999");
$('#HomeZip').mask("99999?-9999");
$('#MailingZip').mask("99999?-9999");
$('#LocationZip').mask("99999?-9999");
});
<div class="M-editor-field">
@Html.EditorFor(model => model.Birthdate)
</div>
<div class="M-validator-field">
@Html.ValidationMessageFor(model => model.Birthdate)
</div>
这是我在页面上使用的jquery。
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>
<script src="http://cloud.github.com/downloads/digitalBush/jquery.maskedinput/jquery.maskedinput-1.3.min.js"></script>
编辑
这是模型上的字段。我的显示设置是这样的
[DisplayName("Date of Birth")]
[DisplayFormat(DataFormatString = "{0:mm/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Birthdate { get; set; }
最佳答案
结果是 DisplayFormat
的 DataFormatString
存在问题。将月份大写解决了问题:)
[DisplayName("Date of Birth")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Birthdate { get; set; }
关于asp.net-mvc - 使用 jQuery 掩码时日期无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16676876/