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

Cra*_*rer 5 asp.net-mvc-3

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

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

Jon*_*Jon 9

是的,这是一种方式:

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

文件Date.cshtml

replace this with a real date picker
Run Code Online (Sandbox Code Playgroud)

文件Time.cshtml

replace this with a real time picker
Run Code Online (Sandbox Code Playgroud)

然后,在你的模型中:

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

[UIHint("Time")]
public DateTime TimeProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

UIHint属性名称必须匹配模板的文件名,并且UIHint是在System.ComponentModel.DataAnnotations,所以你将需要相应的using语句/组装的参考,如果你没有它了.

或者,使用a TimeSpan代表你的时间 - 这就是DateTime它的TimeOfDay属性的回报......