如何获取Html.Editorfor的日期选择器

Lee*_*Lee 10 jquery datepicker jquery-ui-datepicker asp.net-mvc-3

在我的MVC3剃刀页面上,我有一个日期字段

@Html.EditorFor(model => model.Member.Dob)
Run Code Online (Sandbox Code Playgroud)

下面是我试图获得出生日期字段的日期选择器的代码.

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
 <script type="text/javascript">
      $(document).ready(function () {
          debugger;
          $("#Member_Dob").datepicker();
      });
  </script>
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个页面时,我收到了错误

Microsoft JScript runtime error: Object doesn't support property or method 'datepicker' 
Run Code Online (Sandbox Code Playgroud)

请帮我找到一种方法将datepicker添加到我的页面

JP.*_*JP. 21

您需要在Views\Shared\EditorTemplate文件夹中创建EditorTemplate.将其命名为DateTime.cshtml.应该看起来像下面这样:

@model System.DateTime?
 <div class="editor-label">
    @Html.Label("")
</div>
<div class="editor-field">
    @Html.TextBox("", String.Format("{0:MM/dd/yyyy}",(Model == DateTime.MinValue)? null : Model), new { @class="text"})
</div>

<script type="text/javascript">
    $(document).ready(function () {
        $("#@ViewData.ModelMetadata.PropertyName").datepicker({
            changeMonth: true,
            changeYear: true,
            dateFormat: 'mm/dd/yy',
            gotoCurrent: true
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

使用方法如下:

@Html.EditorFor(model => model.Member.Dob)
Run Code Online (Sandbox Code Playgroud)