jQuery DatePicker MVC4 EditorFor

Rod*_*igo 8 editorfor jquery-ui-datepicker asp.net-mvc-4

我需要在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>
Run Code Online (Sandbox Code Playgroud)

剧本:

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

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

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

Gre*_*tle 8

@Html.EditorFor(model => model.birthDate, new { @class = "datepicker"})
Run Code Online (Sandbox Code Playgroud)

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

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

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

@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
Run Code Online (Sandbox Code Playgroud)

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