asp.net-mvc-4 – jQuery DatePicker MVC4 EditorFor

我需要在EditorFor字段上使用datepicker.

我的视图代码是:

<div class="editor-label">
    @Html.Label("birthDate","birthDate")
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.birthDate,new { @class = "datepicker"})
    @Html.ValidationMessageFor(model => model.birthDate)
</div>

剧本:

<script type="text/javascript">
$(document).ready(
    function () {
        $('.datepicker').datepicker({
            changeMonth: true,changeYear: true,minDate: "-99Y",dateFormat: "dd/mm/yyyy"
        });
    });

我不能让它发挥作用.我有以下错误:Microsoft JScript运行时错误:对象不支持属性方法’datepicker’.

在尝试调用函数之前,我已经加载了jQuery.

解决方法

@Html.EditorFor(model => model.birthDate,new { @class = "datepicker"})

不会起作用,因为“EditorFor”不会接受(传递给DOM)一个类.

因此,您需要使用接受Class或更好的“TextBoxFor”,创建一个EditorTemplate来处理任何DateTime字段并在那里添加类. This link详细介绍了如何制作模板.

一旦你的类工作(可以在源代码中验证),其余的只是引用jquery代码.我用

@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")

并使用您已有的脚本激活它.注意名称’.datepicker’与Class完全相同.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...