У нас есть небольшой проект Asp.Net MVC, который отображает отчет из нескольких десятков или сотен строк данных.Каждая строка представлена объектом в моделях представления.
В настоящее время мы показываем строки, подобные этой:
<table>
<tr style="text-align:center">
<th>Name</th>
<th>Item count</th>
<th>Stat 1</th>
<th>Stat 2</th>
<th>Etc</th>
</tr>
<% var alternating = false;
foreach(RowItem rowItem in Model.RowItems)
{ %>
<%= Html.BeginRow(alternating) %>
<%= Html.ShowRow(rowItem) %>
<% alternating = !alternating; %>
<%= Html.EndRow() %>
<% } %>
</table>
Где BeginRow
, EndRow
и ShowRow
являются вспомогательнымиметоды расширения, которые я написал.ShowRow
это что-то вроде
public static string ShowRow(this HtmlHelper html, RowItem rowItem)
{
return "<tr><td>.... </tr>";
}
Но я также мог бы заменить Html.ShowRow(rowItem)
другим частичным представлением, то есть Html.RenderPartial("RowControl", rowItem);
Вопрос в том, каковы преимущества и недостатки этихдва подхода?Все, что я могу придумать, это то, что частичное представление является более «проектируемым» - с ним легче работать, когда amrkup сложен, и членами команды, которые специализируются на «дизайне» и «разработке клиента», т.е.,Вспомогательный HTML-метод - это просто сборка строки, содержащей требуемый HTML, который обращается к программисту старой школы.
Какой из них, если таковой имеется, имеет заметные последствия для производительности для сотен элементов?Есть ли какие-либо последствия для технического обслуживания?При прочих равных условиях, что бы вы выбрали для использования?
Мы находимся на Asp.Net MVC 1.0 и Visual Studio 2008, но, вероятно, через несколько месяцев обновимся.