2011-09-15 29 views
0

我有一個MVC3項目。我有2個模型班。讓我們稱他們爲FooYes和FooNo。MVC3 DataType.Date EditorFor輸出HTML中的錯誤類

我爲每個創建了控制器。

我爲兩者創建了CRUD視圖。

然後我實現了根據this link的jQuery DatePicker。我只實現了選擇器部分而不是驗證。

在我的FooYes edit.cshtml日期選擇器工作正常。在FooNo的edit.cshtml中沒有。

我發現的唯一的區別在於獲取輸出爲模特類:

FooYes看起來像這樣在最終的HTML:

<input class="date" 

FooNo看起來是這樣的:

<input class="text-box single-line" 

以下是FooYes的型號:

[Display(Name = "Creation Date")] 
    [DataType(DataType.Date)] 
    public virtual DateTime CreationDate { get; set; } 

這裏是FooNo型號:

[Display(Name = "Expiration Date")] 
    [DataType(DataType.Date)] 
    public virtual DateTime ExpirationDate { get; set; } 

正如你所看到的聲明是在模型一樣,所以不能吧。我甚至嘗試將FooNo中的ExpirationDate屬性複製並粘貼到FooYes中,然後將所有東西從FooNo複製到FooYes中的FooYes,然後工作。因此,這不是在模型

這裏的代碼是從.cshtml代碼:

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

這和其他之間的唯一不同的是字段的名稱。

當我在最終結果中查看源代碼html時,標題,包含,鏈接等內容都完全相同,除非在不工作的類中將class =設置爲文本事物而不是日期。

我完全困惑。任何人有任何想法會導致這種情況?

+0

LOL是全球性的,我有這樣的,只要我張貼的問題,我想弄清楚的感覺。剛剛發生。 問題是具有Date.cshtml局部視圖的EditorTemplates文件夾需要位於每個視圖/ {控制器} /文件夾中。 所以我有一個新的問題....有什麼辦法可以有一個全球的EditorTemplates文件夾,涵蓋所有我的控制器子文件夾? – user856232

+0

你真的應該問一個新問題,以便人們可以在搜索時找到它。 StackOverflow是關於社區,並盡你所能。但是,DMac回答了你的問題。 –

+0

如果你把模板放在Views \ Shared \ EditorTemplates中,那麼它會被所有的控制器選中:) –

回答

0

如果你真的只是跟着this link,它沒有工作的原因是因爲設置日期選擇器的選擇器只包括.date。嘗試將JavaScript更改爲:

$('.date, .text-box.single-line').datepicker({dateFormat: "dd/mm/yy"}); 

然後看看它是否有效。如果確實如此,則可能需要考慮修改爲FooNo生成的文本框,因爲.text-box.single-line看起來像生成類,可能會被其他文本框共享,而這些文本框並不是日期選擇器。

0

爲了回答您的評論,你可以有Date.cshtml模板,通過把它在Views/Shared/EditorTemplates目錄