1

是否可以覆盖编辑器模板?

我的模型中有 DateTime 字段,用于到达/离开日期 - 这些是使用以下 EditorTemplate 呈现的:

@model Nullable<System.DateTime> 

@if ( Model.HasValue ) { 
   @Html.TextBox( "" , String.Format( "{0:dd/MM/yyyy}" , Model.Value ) , new  { @class = "datepicker span2" } ) 
} 
else { 
   @Html.TextBox( "" , String.Format( "{0:dd/MM/yyyy}" , DateTime.Now ) , new { @class = "datepicker span2" } ) 
} 

...这将格式化日期时间字段,例如:01/08/2012

但是,我还想在另一个字段中显示预订的日期和时间,例如:

22/07/2012 08:23

我的模型是:

    public DateTime Arrival { get; set; }
    public DateTime Departure { get; set; }
    public DateTime TimeBooked { get; set; }

我希望 TimeBooked 也能显示时间 - 但编辑器模板显然只显示日期。

这可以被覆盖吗?还是有另一种方法可以做到这一点?

谢谢,

标记

4

3 回答 3

11

您可以添加一个不同的命名编辑器,它也显示时间并使用 EditorFor 的重载,它接受模板名称作为第二个参数,例如:

EditorFor(m=>m.TimeBooked, "DateWithTimeTemplate")

MSDN 帮助

于 2012-07-22T10:02:51.127 回答
4

您可以使用UIHintAttribute属性。您可以使用此属性装饰TimeBooked属性,以便 MVC 知道要使用哪个编辑器。

于 2012-07-22T09:57:05.803 回答
0

是的,您可以通过添加hh:mm占位符来做到这一点..

String.Format("{0:d/M/yyyy HH:mm:ss}", DateTime.Now)

有关更多示例,请参见此处..

于 2012-07-22T09:45:34.477 回答