EditorTemplate在我的视图中没有覆盖我的文本框

时间:2013-07-10 11:11:04

标签: c# asp.net-mvc asp.net-mvc-3 razor

我无法让我的DateTime EditorTemplate工作。

我的ViewModel:

 public class CreateViewModel
{
    // Customer
    public int CustomerId { get; set; }
    [Required]
    [DataType(DataType.DateTime)]
    [Display(Name = "Arrival Date")]
    [DisplayFormat(DataFormatString = "{0:dd MMM yyyy}", ApplyFormatInEditMode = true)]
    [UIHint("DateTime")]
    public DateTime ArrivalDate { get; set; }
}

我也有我的共享 - > EditorTemplates文件夹,DateTime.cshtml:

@model DateTime?
@Html.TextBox(
"", 
string.Format("{0:dd MMM yyyy}", Model ?? DateTime.Today), 
new { 
    @class = "textbox datepicker"
} 
)

根据我的观点,我有:

  @Html.TextBoxFor(m => m.ArrivalDate)

但是,我的DateTime.cshtml似乎没有被调用 - 因为它仍然在文本框中显示日期:

15/07/2013 00:00:00但它应该是15 July 2013 - 没有时间。

我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:1)

如果您要使用魔杖和编辑模板,则需要使用Html.EditorHtml.EditorFor

如果您使用任何其他帮助,例如Html.TextBoxHtml.TextboxFor,则不会应用该模板。

同样,如果您想使用展示广告模板,则需要使用Html.DisplayHtml.DisplayFor