EditorTemplates> bool - bool.cshtml, DateTime? - DateTime? .Cshtml (ошибка) - PullRequest
0 голосов
/ 15 марта 2012

Без использования «UIHint» как создать .cshtml для определенных типов данных.

Примеры

Они уже работают! * Будет использоваться

[DataType(DataType.Url)]
public string Link { get; set; }

* Будет использоваться 1010 *

Url.cshtml

[DataType(DataType.MultilineText)]
public string Descrition { get; set; }

MultilineText.cshtml

Я сомневаюсь, как будет использоваться

public IEnumerable<SelectListItem> TypesList { get; set; }

???????????.cshtml

public DateTime? DateUpdated { get; set; }

???????????.cshtml

public int? Order { get; set; }

будет использоваться

???????????.cshtml

Вопросы

Короче говоря, я не хочу вставлять в мои атрибуты ViewModel, как это будет работать в точности какUrl "и" Multiline "

Каким должно быть имя файла .cshtml, которое будет использоваться для int?, IEnumerable<xx> или IEnumerable<string>

Remembering that you can not create files with "<", ">" or "?"

1 Ответ

4 голосов
/ 15 марта 2012

По соглашению (если вы не указываете имя шаблона):

  • public IEnumerable<SelectListItem> TypesList { get; set; } будет использовать SelectListItem.cshtml (не так, поскольку у вас есть IEnumerable<T>, шаблон редактора будет отображатьсядля каждого элемента коллекции и будет называться T.cshtml)
  • public DateTime? DateUpdated { get; set; } будет использовать DateTime.cshtml
  • public int? Order { get; set; } будет использовать Int32.cshtml ...

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

@Html.EditorFor(x => x.TypesList, "MyTemplate.cshtml")

Если предположить, что TypesList является IEnumerable<T>, тогда MyTemplate.cshtml будет строго напечатано в IEnumerable<T>, а не T.

...