0

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

<%: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 编辑器,它工作正常。

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

4

2 回答 2

0

我已经在 MVC 2 和 MVC 3 下尝试了您的方案,在 MVC 3 下它可以按预期工作。

就这样我正确理解你EditorTemplates在包含你的ComplexModel.ascx编辑器和ComplexModel.ascx你调用的 Shared 中Html.EditorFor(m => m.ADate)

我不确定 MVC 2 在这方面的更新,但 MVC 3 它确实有效。

于 2010-09-21T03:30:49.300 回答
0

我解决了这个问题:

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

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

更改该属性可以解决所有问题。

于 2010-09-22T18:11:02.650 回答