在MVC3中,是否可以为同一类型设置多个EditorTemplates?

时间:2011-08-16 04:43:20

标签: asp.net-mvc-3

我的MVC模型类中有一些DateTime字段 - 一些需要Date作为输入,另一些需要Time作为输入 - 但两者都是DateTime属性。

是否有可能为DateTime创建一个EditorTemplate,以某种方式为属于日期的属性生成日期选择器,并为可能属于时间的属性生成时间选择器?

1 个答案:

答案 0 :(得分:9)

是的,这是一种方式:

~/Views/Shared/EditorTemplates(或~/Views/Shared/DisplayTemplates中,创建使用您最喜欢的视图引擎的模板文件(示例使用Razor / C#)

file Date.cshtml

replace this with a real date picker

文件Time.cshtml

replace this with a real time picker

然后,在你的模型中:

[UIHint("Date")]
public DateTime DateProperty { get; set; }

[UIHint("Time")]
public DateTime TimeProperty { get; set; }

UIHint属性名称必须与模板的文件名相匹配,UIHint位于System.ComponentModel.DataAnnotations,因此如果您不知道,则需要使用相应的使用语句/程序集参考已经拥有它了。

或者,使用TimeSpan代表您的时间 - 这是DateTime属性TimeOfDay返回的内容...