在MVC中,可以覆盖编辑器模板

Mar*_*ark 1 asp.net asp.net-mvc asp.net-mvc-3

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

我的模型中有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" } ) 
} 
Run Code Online (Sandbox Code Playgroud)

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

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

22/07/2012 08:23
Run Code Online (Sandbox Code Playgroud)

我的模型是:

    public DateTime Arrival { get; set; }
    public DateTime Departure { get; set; }
    public DateTime TimeBooked { get; set; }
Run Code Online (Sandbox Code Playgroud)

我希望TimeBooked能够显示时间 - 但编辑模板显然只显示日期.

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

谢谢,

标记

sha*_*kib 11

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

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

MSDN帮助