【发布时间】:2011-11-18 07:29:04
【问题描述】:
我有一个 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 中,然后它就可以工作了。所以不是模型中的代码
这是来自 .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= 设置为文本内容而不是日期。
我完全糊涂了。任何人有任何想法会导致这种情况吗?
【问题讨论】:
-
LOL,我有一种感觉,只要我发布一个问题,我就会弄清楚。那只是发生了。问题是带有 Date.cshtml 部分视图的 EditorTemplates 文件夹需要位于 EACH Views/{controller}/ 文件夹中。所以我有一个新问题......有没有办法让一个全局 EditorTemplates 文件夹覆盖我所有的控制器子文件夹?
-
您确实应该提出一个新问题,以便人们在搜索时找到它。 StackOverflow 是关于社区的,并尽自己的一份力量。不过 DMac 回答了您的问题。
-
如果您将模板放在 Views\Shared\EditorTemplates 中,那么它将被所有控制器拾取:)
标签: jquery asp.net-mvc-3 datetime datepicker editorfor