jQuery DatePicker不显示与MVC3 C#

问题描述:

[编辑:现在工作。刚刚将EditorFor改成了TextBox]jQuery DatePicker不显示与MVC3 C#

我刚刚在C#中用MVC3开始。我偶然发现了这个问题。

我已经遵循了一些关于向MVC3项目添加datepicker功能的教程,但datepicker没有显示在我的web项目中。以下是我有:

在我_Layout.chtml文件我已经包含所需的jQuery依赖关系文件:

<link href="@Url.Content("~/Content/themes/base/jquery.ui.core.css")" 
    rel="stylesheet" type="text/css" /> 
<link href="@Url.Content("~/Content/themes/base/jquery.ui.datepicker.css")" 
    rel="stylesheet" type="text/css" /> 
<link href="@Url.Content("~/Content/themes/base/jquery.ui.theme.css")" 
    rel="stylesheet" type="text/css" /> 

<script src="@Url.Content("~/Scripts/jquery.ui.core.min.js")" 
    type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.ui.datepicker.min.js")" 
    type="text/javascript"></script> 

这是我在我的视野:

@using (Html.BeginForm()) { 
@Html.ValidationSummary(true) 
<fieldset> 
    <legend>Student</legend> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.FullName) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.FullName) 
     @Html.ValidationMessageFor(model => model.FullName) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.DOB) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.DOB, new { @class = "date" }) 
     @Html.ValidationMessageFor(model => model.DOB) 
    </div> 

    <p> 
     <input type="submit" value="Create" /> 
    </p> 
</fieldset> 

}

并且在View中的同一个文件中,我把脚本钩住了顶部的编辑器中的datepicker:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.date').datepicker(); 
}); 

,很多教材的建议使用EditorTemplate这一点,但我认为这是没有必要的。我错过了什么?感谢所有帮助的人。

+0

将它放在底部,看看会发生什么。 – 2012-08-01 11:44:15

+0

我没有看到对实际jQuery库的引用。你已经引用了jQuery UI核心以及datepicker,但jQuery在哪里? – Joshua 2012-08-01 11:51:58

我不相信你可以使用EditorFor并传入一个类。请尝试:

<div class="editor-field"> 
    @Html.TextBoxFor(model => model.DOB, new { @class = "date" }) 
    @Html.ValidationMessageFor(model => model.DOB) 
</div> 

TextBoxFor将接受HTML属性。

+0

Doh!奇迹般有效。谢谢! – JofryHS 2012-08-01 11:58:14

下面是一个简单的工作演示,读取this

<!DOCTYPE html> 
<html> 
<head> 
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 

    <script> 
    $(document).ready(function() { 
    $("#datepicker").datepicker(); 
    }); 
    </script> 
</head> 
<body style="font-size:62.5%;"> 

<div id="datepicker"></div> 

</body> 
</html> 

@ Html.TextBoxFor()秒参数是对象htmlAttributes
@ Html.EditorFor()第二个参数是object additionalViewData

所以{@class =“date”}对@ Html.TextBoxFor()不具有预期的效果