我有一个模型的列表属性foreach循环查看。现在,我希望能够让用户使用下拉列表设置列表中每个项目的值。但我不知道该怎么做。我用这样的事情时,它不是在foreach循环:在Asp.Net MVC视图中使用dropdownlist for foreach?
@Html.DropDownListFor(model => model.Level, new SelectList(new[] { 1, 2, 3, 4, 5 }, Model.Level))
但是我怎么做到这一点的时候,我需要引用item.Level在循环呢?这里是我查看代码:
<div id="formDiv">
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Ny arbetserfarenhet</legend>
<table>
<tr>
@*<th></th>*@
<th>
Program
</th>
<th>
Nivå
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@item.Program.Name
</td>
<td>
@item.Level
</td>
</tr>
}
</table>
</fieldset>
}
</div>
感谢您的提示!是不是使用for循环的原因,它是这样更优雅,或者其他一些原因?我可以使用它,但必须将选择列表更改为我以前使用的语法,我在列表中列出了一些奇怪的值和文本,否则它的工作正常! – Anders 2011-03-25 09:54:03
@Anders Svensson,原因很多:清晰的视图,较少的代码,强类型的帮助者,不需要担心生成正确的id和名字来绑定回来,... – 2011-03-25 11:05:46
好的,谢谢!无论如何,我意识到我也必须对项目进行分类......这使得这一点变得更加复杂。如果您能够接受,欢迎您查看我的后续问题:http://stackoverflow.com/questions/5433710/group-a-collection-in-mvc-view-and-update- model-in-controller – Anders 2011-03-25 15:26:14