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

<%: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)%>

这存储在共享/Editortemplates文件夹中。我在同一位置也有一个DateTime.ASCX编辑器模板,以覆盖所有DateTime字段。

正如您在上面的代码中看到的那样,日期字段之一使用 EditorFor 对于日期字段,另一个没有。但是,它们都相同,这使我相信DateTime编辑器无法访问。有什么我做错了吗?似乎应该这样做。

我直接在视图中使用了DateTime编辑器,并且可以正常工作。

感谢您的任何帮助或见识。

有帮助吗?

解决方案 2

我解决了这个问题:

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

我有所有设置为所有日期的数据类型属性 [DataType(DataType.Date)] 代替 [DataType(DataType.DateTime)].

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

其他提示

我已经在MVC 2和MVC 3下尝试了您的方案,并在MVC 3下尝试了您的期望。

所以我正确理解你有 EditorTemplates 在您的共享中包含您的 ComplexModel.ascx 编辑和您 ComplexModel.ascx 你打电话 Html.EditorFor(m => m.ADate).

关于此,我不确定对MVC 2的更新,但MVC 3肯定有效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top