使用jQuery掩码时未正确显示日期

时间:2013-05-21 18:22:47

标签: asp.net-mvc asp.net-mvc-3 jquery jquery-plugins

我试图在我的ASP MVC edit页面上使用this jQuery plugin作为输入掩码。但是,无论数据库中存储的值是什么,月份始终显示为两个零:00/dd/yyyy。我已经逐步完成了Visual Studio中的代码并检查了存储在数据库中的实际值,并验证了它是否正确。

这是视图中的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; }

1 个答案:

答案 0 :(得分:0)

原来是DisplayFormat的{​​{1}}问题。资本化月份解决了问题:)

DataFormatString