【问题标题】:How to get a datepicker for Html.Editorfor如何获取 Html.Editorfor 的日期选择器
【发布时间】:2012-05-02 07:54:48
【问题描述】:

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

@Html.EditorFor(model => model.Member.Dob)

下面是我试图为“出生日期”字段获取日期选择器的代码。

<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>

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

Microsoft JScript runtime error: Object doesn't support property or method 'datepicker' 

请帮我找到一种将日期选择器添加到我的页面的方法

【问题讨论】:

    标签: jquery asp.net-mvc-3 datepicker jquery-ui-datepicker


    【解决方案1】:

    您需要在 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>
    

    如下使用:

    @Html.EditorFor(model => model.Member.Dob)
    

    【讨论】:

    • 你能告诉我如何在我看来渲染 datetime.cshtml 非常感谢你
    • 如果您使用@Html.IdForModel() 而不是@ViewData.ModelMetadata.PropertyName,它将适用于嵌套属性。见:stackoverflow.com/questions/15654716/…
    【解决方案2】:
    【解决方案3】:
    <div class="form-group">
                    @Html.LabelFor(model => model.Birthdate, "Birthday", new { @class = "control-label col-md-2" })
                    <div class="col-md-5">
                        @Html.Kendo().DatePickerFor(model => model.Birthdate)
                        @Html.ValidationMessageFor(model => model.Birthdate)
                    </div>
                </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多