我有一个MVC3项目。我有2个模型类。让我们称他们为FooYes和FooNo。
我为每个人创建了控制器。
我为两者创建了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 :(得分:0)
如果你真的只关注this link,那么它之所以不起作用,是因为设置日期选择器的选择器只包含.date
。尝试将JavaScript更改为:
$('.date, .text-box.single-line').datepicker({dateFormat: "dd/mm/yy"});
看看它是否有效。如果是这样,你可能想考虑修改为FooNo生成的文本框,因为.text-box.single-line
看起来像一个生成类,可以由其他不打算作为日期选择器的文本框共享。
答案 1 :(得分:0)
要回答您的评论,您可以将Date.cshtml
模板放在Views/Shared/EditorTemplates
目录