У меня есть представление с циклом foreach для свойства списка в режиме
Я бы порекомендовал вам избегать написания циклов в ваших представлениях в пользу шаблонов редактора.Итак:
@model IEnumerable<AppName.Models.ModelName>
<div id="formDiv">
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Ny arbetserfarenhet</legend>
<table>
<tr>
<th>
Program
</th>
<th>
Nivå
</th>
</tr>
@Html.EditorForModel()
</table>
</fieldset>
}
</div>
и в соответствующем шаблоне редактора (~/Views/Shared/EditorTemplate/ModelName.cshtml
):
@model AppName.Models.ModelName
<tr>
<td>@Model.Program.Name</td>
<td>
@Html.DropDownListFor(
model => model.Level,
new SelectList(
Enumerable.Range(1, 5).Select(x => new { Value = x, Text = x }),
"Value",
"Text"
)
)
</td>
</tr>
Таким образом, шаблон редактора будет отображаться для каждого элемента вашей модели (который является коллекциейкакого-то типа).Важной частью является то, что шаблон редактора должен находиться в ~/Views/Shared/EditorTemplates
и называться XXX.cshtml
, где XXX
- это имя типа, используемое в вашей коллекции моделей основного вида.