Создание модели представления. НЕ передавайте список TransactionLines в представление, вместо этого создайте класс TransactionDisplayLine и передайте список этого представлению.
В вашем контроллере пройдитесь по TransactionLines и создайте TransactionDisplayLine для каждого элемента.
TransactionDisplayLine должен содержать такие вещи:
- Итого
- trans.IsCredit? "CR": "DR" <- Результат этого в виде строки </li>
- String.Format ("{0: C2}", line.Amount) <- Сумма в виде отформатированной строки уже </li>
Тогда само представление просто становится действительно простым циклом foreach, который генерирует строки, но не принимает никаких дальнейших решений / логики в отношении данных.
Поскольку TransactionDisplayLines создаются в контроллере, отладка становится легкой.
Я заметил, что у вас также есть чётный / нечетный циклический ряд, что еще больше усложняет ситуацию. Попробуйте добавить это в HTML Helper, например от Phil Haack .
Это ужасные вещи:
<tr <% if(rowNum % 2 == 0) { %> class="alternateRow" <%}%>>
затем становится
<tr class="<%: Html.Cycle("alternateRow","") %>">
и ваш rowNum также исчез.