2012-08-01 56 views
1

[編輯:現在工作。剛剛將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

回答

0

我不相信你可以使用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

0

下面是一個簡單的工作演示,讀取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> 
0

@ Html.TextBoxFor()秒參數是對象htmlAttributes
@ Html.EditorFor()第二個參數是object additionalViewData

所以{@class =「date」}對@ Html.TextBoxFor()不具有預期的效果