Подтвердить что ты не робот

Шаблон редактора ASP.NET MVC 4 для базовых типов

Я создал шаблон для ввода номера, и если я делаю

@Html.EditorFor(model => model.SomeValue, "Number")

он отлично работает и используется шаблон.

Однако это не работает:

@Html.EditorFor(model => model.SomeValue)

Почему мне нужно указать имя шаблона редактора для базовых типов?

4b9b3361

Ответ 1

Шаблоны редакторов работают по соглашению. Имя шаблона должно совпадать с именем типа. Например, если SomeValue является типом int, вы можете написать собственный шаблон редактора в ~/Views/Shared/EditorTemplates/Int32.cshtml, который будет использоваться. В этом случае все целые типы будут использовать этот настраиваемый шаблон при написании @Html.EditorFor(model => model.SomeValue).

Если вы не хотите переопределять все шаблоны для целых типов, вы можете написать определенный именованный шаблон ~/Views/Shared/EditorTemplates/Number.cshtml, который можно использовать только для некоторых свойств, указав это имя шаблона в качестве второго аргумента помощнику EditorFor: @Html.EditorFor(model => model.SomeValue, "Number") или украсив ваше свойство модели просмотра атрибутом [UIHint]:

[UIHint("Number")]
public int SomeValue { get; set; }

а затем просто используя @Html.EditorFor(model => model.SomeValue) будет отображать настраиваемый шаблон Number.cshtml.

Я также рекомендую вам прочитать Brad Wilson blog post о шаблонах по умолчанию в ASP.NET MVC.

Ответ 2

В шаблоне редактора вы должны иметь тот же тип Пример:

model.SomeValue - это тип loremIpsumObject

В вашем EditorTemplate вы:

  @model YourNamespaceWhereIsYourClass.loremIpsumObject
  ...And your code in your editorTemplate....

вы можете найти пример здесь для datetime

Это поможет вам?