Отже, назва повинна говорити сама за себе.
Для створення повторно використовуваних компонентів у ASP.NET MVC у нас є 3 варіанти (можуть бути інші, про які я не згадував):
Частковий вигляд:
@Html.Partial(Model.Foo, "SomePartial")
Шаблон спеціального редактора:
@Html.EditorFor(model => model.Foo)
Спеціальний шаблон відображення:
@Html.DisplayFor(model => model.Foo)
З точки зору фактичного перегляду / HTML, всі три реалізації однакові:
@model WebApplications.Models.FooObject
<!-- Bunch of HTML -->
Отже, моє запитання - коли / як ви вирішите, який із трьох використовувати?
Що я дійсно шукаю - це перелік питань, які слід задати собі перед створенням, на які відповіді можна використовувати, щоб визначити, який шаблон використовувати.
Ось дві речі, які я вважаю кращими за допомогою EditorFor / DisplayFor:
Вони поважають ієрархії моделей при наданні HTML-помічників (наприклад, якщо у вашої моделі "Foo" є об'єкт "Bar", HTML-елементи для "Bar" будуть надані з "Foo.Bar.ElementName", тоді як у часткової буде " ElementName ").
Більш надійним, наприклад, якщо у вас було
List<T>
щось у ViewModel, ви могли б використовувати@Html.DisplayFor(model => model.CollectionOfFoo)
, і MVC досить розумний, щоб побачити, що це колекція та виводити єдиний дисплей для кожного елемента (на відміну від Часткового, який вимагає явного для петля).
Я також чув, що DisplayFor надає шаблон "лише для читання", але я цього не розумію - не можу я перекинути туди форму?
Може хтось розповість мені інші причини? Чи є десь список / стаття, яка порівнює три?