это проблема

образом, название должно говорить само за себя.

Для создания повторно используемых компонентов в ASP.NET MVC у нас есть 3 варианта (могут быть и другие, о которых я не упомянул):

Частичный вид:

@Html.Partial(Model.Foo, "SomePartial")

Пользовательский шаблон редактора:

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

Пользовательский шаблон отображения:

@Html.DisplayFor(model => model.Foo)

С точки зрения фактического View / HTML все три реализации идентичны:

@model WebApplications.Models.FooObject

<!-- Bunch of HTML -->

Итак, мой вопрос - когда / как вы решаете, какой из трех использовать?

Что я действительно ищу, так это список вопросов, которые нужно задать себе перед тем, как создавать, ответы на которые можно использовать, чтобы решить, какой шаблон использовать.

Вот две вещи, которые я нашел лучше с EditorFor / DisplayFor:

Они уважают иерархии моделей при рендеринге помощников HTML (например, если у вас есть объект "Bar" в вашей модели "Foo", элементы HTML для "Bar" будут отображаться с "Foo.Bar.ElementName", тогда как частичное будет иметь " ElementName ").

Более надежный, например, если у вас былList<T> чего-то в вашей ViewModel, вы можете использовать@Html.DisplayFor(model => model.CollectionOfFoo)и MVC достаточно умен, чтобы видеть, что это коллекция, и отображать единое отображение для каждого элемента (в отличие от частичного, который потребовал бы явного цикла for).

Я также слышал, что DisplayFor отображает шаблон «только для чтения», но я не понимаю этого - разве я не могу добавить туда форму?

Может кто-нибудь сказать мне другие причины? Есть ли где-нибудь список / статья, сравнивающая три?

Ответы на вопрос(1)

Ваш ответ на вопрос