В MVC вы можете создать шаблон редактора для T
, а затем, когда вы хотите отобразить редактор для свойства типа IEnumerable<T>
, вы можете просто сделать, например.
Html.EditorFor(m => m.MyListOfT)
Прелесть этого в том, что имена автоматически создаются фреймворком для входных данных, а затем при обратной отправке привязки модели все работает хорошо.
Мой вопрос: как вы делаете это, когда у вас есть несколько типов шаблонов редактора?
Я пытался использовать UIHint(), однако, похоже, он позволяет вам указать UIHint только для списка, а не для каждого элемента в списке. Это означает, что затем вам нужно создать EditorTemplate для списка с циклом foreach(), и тогда вы упустите хорошее автоматическое именование и привязку модели.
Что мне здесь не хватает?
Модель, например.
public class MyViewModel
{
public IEnumerable<SomeType> SomeProperty { get; set; }
}
В идеале я хочу сделать что-то вроде:
public class MyViewModel
{
[UIHint("SomeTypeTemplate")]
public IEnumerable<SomeType> SomeProperty { get; set; }
}
и пусть это автоматически применяется ко всем элементам в списке, поэтому я могу отображать только с помощью:
Html.EditorFor(m => m.SomeProperty)