IE没有为MVC5呈现DatePicker

时间:2014-01-10 22:22:51

标签: asp.net-mvc internet-explorer datepicker

我正在制作一个MVC5网站,正如您所知道的那样。现在我刚刚使用具有BirthDate字段的Crete模板创建了一个View。 Andit没有在IE中显示,并且在Chrome中显示可怕的文本框中有很多gliph,您可以在下面的图像中进行比较。

enter image description here

发生了什么,我怎样才能让IE显示日期选择器就像Chrome一样简单,以及如何清理它。我认为那些杠杆是无用的和令人困惑的。

以下是我在模型中定义该属性的方法

    [Display(Name = "Fecha de nacimiento")]
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime BirthDate { get; set; }

并在视图中

    <div class="form-group">
        @Html.LabelFor(model => model.BirthDate, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.BirthDate)

            @Html.ValidationMessageFor(model => model.BirthDate)
        </div>
    </div>

2 个答案:

答案 0 :(得分:4)

如果您不喜欢内置的datepicker(由浏览器呈现,因为它是输入类型=“日期”),那么有很多第三方插件可用,例如jQuery UI。< / p>

您可能需要更改的一件事是使用EditorFor,而不是使用TextBoxFor,因此浏览器只会将其视为普通文本框。下面是使用jQuery UI的示例:

@Html.TextBoxFor(m => m.BirthDate)

<script>
    $(function() {
        $('#BirthDate').datepicker();
    });

答案 1 :(得分:2)

感谢@Dissmissile我用bootstrap datepicker搞清楚但在我看来有点不同

@Html.TextBoxFor(model => model.Date, new { @class = "datepicker" })

然后我添加了下一个js代码来配置格式和行为

    $(document).ready(function () {
        $(".datepicker").datepicker({
            format: "yyyy/mm/dd",
            autoclose: true
        });
        $(".datepicker").datepicker('setValue', new Date());
    });