Я уже некоторое время использую Spark View Engine и никогда не оглядывался назад. Хотя это по сути не уменьшает объем серверного кода, используемого в View (это то, что вам придется делать самостоятельно), он может сделать его «вписывающимся» в окружающий HTML, делая разметку легче для чтения , Вот пример этого из текущего проекта, над которым я работаю (имена классов и свойств были изменены, чтобы защитить виновных):
<div id="Messages" if="Model.Messages.Count > 0">
<MessageDetails each="Message message in Model.Messages" />
</div>
То, что вы в основном видите здесь, это a) вывод обертки <div>
в View, если в списке есть сообщения (в данном случае Model.Messages
), и b) визуализированный частичный просмотр (называемый MessageDetails). ") для каждого элемента в списке. Эквивалентная версия веб-форм будет выглядеть примерно так:
<% if (Model.Messages.Count > 0) { %>
<div id="Messages">
<% foreach(Message message in Model.Messages) { %>
<% Html.RenderPartial("Container", message); %>
<% } %>
</div>
<% } %>
Хотя это не всегда уменьшает количество строк, необходимых для выполнения действий на стороне сервера (таких как рендеринг частичного представления), это уменьшает визуальную сложность представления и делает разметку не на стороне сервера намного более ремонтопригодны.