Я бы порекомендовал вам использовать шаблоны редактора. Таким образом, вам не нужно писать какие-либо циклы и сохранять строгую типизацию:
<table>
<%= Html.EditorForModel() %>
</table>
и затем вы определяете шаблон редактора, который будет автоматически отображаться для каждого элемента вашей коллекции (~/Views/Shared/EditorTemplates/AdjustmentModel.ascx
):
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<AdjustmentModel>"
%>
<tr>
<td class="nonSelectable" column="0">
<div>
<%= Html.HiddenFor(x => x.ID) %>
<%= Html.EditorFor(x => x.amount) %>
</div>
</td>
</tr>
Важно соблюдать соглашение, согласно которому шаблон вашего редактора должен находиться в папке ~/Views/CurrentController/EditorTemplates
или ~/Views/Shared/EditorTemplates
. Имя шаблона должно соответствовать типу, используемому в коллекции. Так, например, если у вас есть IEnumerable<AdjustmentModel>
, файл должен называться AdjustmentModel.ascx
и явно строго типизирован как AdjustmentModel
. Этот шаблон будет автоматически вызываться для каждого элемента.