我正在尝试使用DropDownList
创建一个动态表单来选择值
在视图中,我有这个:
@for (int i = 0; i < Model.SelectedIntensities.Count(); i++)
{
<tr>
<td>
@(i + 1)
</td>
<td>
@Html.DropDownListFor(m => m.SelectedIntensities, new SelectList(Model.Filter.Intensities, Model.SelectedIntensities.ElementAt(i)))
</td>
</tr>
}
我在控制器中使用SelectedIntensities
参数检索数据时工作得很好。
之后我将值设置回ViewModel
vm.SelectedIntensities = selectedIntensities.ToList();
但是在我看来,如果我有多个下拉列表,他们将第一个的值取为SelectedValue
。
因此,如果我从两个下拉列表中选择两种不同的强度:例如 20 和 25 。当我提交表单并且页面重新加载值时,下拉列表将显示 20 作为选定值...
我做错了什么?
答案 0 :(得分:1)
正如Stephen在评论中所述,解决方案是指定SelectedIntensities
我取而代之:
@Html.DropDownListFor(m => m.SelectedIntensities, new SelectList(Model.Filter.Intensities, Model.SelectedIntensities.ElementAt(i)))
有了这个:
@Html.DropDownListFor(m => m.SelectedIntensities[i], new SelectList(Model.Filter.Intensities))
现在效果很好。