2013-07-10 2 views
1

Я не могу заставить свой DateTime EditorTemplate работать.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 - без НЕТ.

Что мне не хватает?

Спасибо.

+0

Вы используете Html.TextBox или Html.Display? – JotaBe

+0

Привет - Я использую: @ Html.TextBoxFor (m => m.ArrivalDate) – Mark

+0

Aha - Я вижу сейчас, если вы использовали EditorFor он работает !!! – Mark

ответ

1

Если палочка использовать и редактор шаблонов, вы должны использовать Html.Editor или Html.EditorFor

Если вы используете любой другой помощник, как Html.TextBox или Html.TextboxFor, шаблон не будет применяться.

Аналогичным образом, если вы хотите использовать шаблон отображения, вам необходимо использовать Html.Display или Html.DisplayFor.

Смежные вопросы