你能在ASP.Net MVC 2中拥有儿童编辑吗?

时间:2010-09-21 00:23:40

标签: asp.net-mvc-2 mvc-editor-templates

我有自定义对象的编辑器模板。非常基本 - 只有一堆字符串和日期:

<%:Html.LabelFor(model => model.AString)%>
<%:Html.TextBoxFor(model => model.AString)%>

<%:Html.LabelFor(model => model.ADate)%>
<%:Html.EditorFor(model => model.ADate)%>

<%:Html.LabelFor(model => model.AnotherDate)%>
<%:String.Format("{0:d}", Model.AnotherDate)%>

这存储在Shared / EditorTemplates文件夹中。我在同一位置也有一个DateTime.ascx编辑器模板,以覆盖所有日期时间字段。

正如您在上面的代码中看到的,其中一个日期字段使用EditorFor作为日期字段,另一个则不然。但是,它们都呈现相同,这使我相信没有访问DateTime编辑器。有什么我做错了吗?似乎应该可以这样做。

我在视图中直接使用了DateTime编辑器,它运行正常。

感谢您的帮助或见解。

2 个答案:

答案 0 :(得分:0)

我已经在MVC 2和MVC 3下尝试了你的场景,在MVC 3下它可以正常运行。

我正确理解你的共享中有EditorTemplates,其中包含ComplexModel.ascx编辑器,并且在ComplexModel.ascx你打电话Html.EditorFor(m => m.ADate)内。

我不确定有关MVC 2的更新,但MVC 3确实有效。

答案 1 :(得分:0)

我发现了问题:

我在模型中为数据注释设置了部分元数据类(我正在使用实体框架)。我的部分日期视图适用于?DateTime(DateTime.ascx)

我将所有日期的DataType属性设置为[DataType(DataType.Date)]而不是[DataType(DataType.DateTime)]

更改该属性会将其全部修复。