В зависимости от того, зачем вам нужен индекс, может быть более простой способ.
Я делал что-то похожее и хотел индекс только для того, чтобы я мог легко нумеровать список пунктов, таких как:
- Первые элементы в списке
- Второй пункт в списке
и т.д.
Возможно, очевидное решение состояло в том, чтобы отобразить мой шаблон отображения в качестве элемента списка в списке заказов и позволить браузеру обрабатывать отображение индекса. Первоначально я делал это в таблице, и мне нужно было, чтобы индекс отображался в таблице, но использование упорядоченного списка делает его намного проще.
Итак, у моего родительского представления было следующее:
<ol>
@Html.DisplayFor(m => m.Items)
</ol>
И мой шаблон писал на элементах в элементе списка, используя divs - обратите внимание, что вы можете использовать плавающие div, или, что еще лучше, отобразить: inline-style, чтобы получить эффект таблицы
<li>
<div class="class1">@Html.DisplayFor(m => m.ItemType)</div>
...
</li>
и css:
.class1 {
display: inline-block;
width: 150px;
}