Я новичок в MVC. Я создаю экран, на котором показан список транзакций. Итак, в моем контроллере я создаю список <> TransactionLines. Затем я передаю это моему представлению. Мой Посмотреть то есть такой код:ASP.Net MVC - Построение таблицы
<table width="1000" border="0" cellspacing="1" cellpadding="2">
<tr class="headerRow">
<td>
Transaction Date
</td>
<td>
Payee
</td>
<td align="right">
Amount
</td>
<td>
Category
</td>
<td>
Cost Center
</td>
<td>
Budget Assignment
</td>
<td>
</td>
</tr>
<%
decimal runningTotal = 0;
int rowNum = 0;
foreach (var trans in Model)
{
rowNum++;
runningTotal += trans.TotalAmount;
if (trans.IsSplit == false)
{
foreach (var line in trans.Transactions)
{%>
<tr <% if(rowNum % 2 == 0) { %> class="alternateRow" <%}%>>
<td>
<%=trans.TransactionDate.ToShortDateString()%>
</td>
<%-- <td>
<%=trans.IsCredit ? "CR" : "DR"%>
</td>
--%> <td>
<%=trans.Payee %>
</td>
<td align="right" <% if(trans.IsCredit==false) { %>class="debitCell" <% }%>>
<% =String.Format("{0:C2}", line.Amount)%>
</td>
<td>
<%=String.Format("{0} - {1}", line.Category, line.SubCategory)%>
</td>
<td>
<%=line.CostCenter%>
</td>
<td>
<%=line.Budget%>
</td>
<td>
<font color="gray">
<%=String.Format("{0:C2}", runningTotal)%></font>
</td>
</tr>
<%
}
}
else
{ %>
<tr <% if(rowNum % 2 == 0) { %> class="alternateRow" <%}%>>
<td>
<%=trans.TransactionDate.ToShortDateString()%>
</td>
<%-- <td>
<%=trans.IsCredit ? "CR" : "DR"%>
</td>
--%> <td>
<%=trans.Payee %>
</td>
<td align="right">
<%=String.Format("{0:C2}", trans.TotalAmount)%>
</td>
<td>
<%=trans.Transactions[0].Category + " ...[More]" %>
</td>
<td>
<%=trans.Transactions[0].CostCenter + "...[More]" %>
</td>
<td>
</td>
<td>
<font color="gray">
<%=String.Format("{0:C2}", runningTotal)%></font>
</td>
</tr>
<%}
}%>
<tr>
<td colspan="3" align="right">
<strong>
<%=runningTotal.ToString("C2") %></strong>
</td>
</tr>
</table>
Теперь, что может выглядеть неаккуратно, и это кошмар для отладки. Кроме того, у меня есть новое требование о том, что будет делать doubley трудно следовать.
Есть ли лучший способ сделать это?
Я бы порекомендовал вам использовать механизм просмотра Razor, если вы не слишком далеко от вашего проекта - синтаксис намного чище. Также рассмотрите вопрос о подготовке текстового вывода в вашем контроллере и пропустите простую модель просмотра, возможно, используя HTML-помощники, чтобы инкапсулировать некоторые из более простой логики в вашем представлении ... – JcMaltaDev