页面未显示for循环中下拉列表中以前选择的值-ASP.NET MVC

本文关键字:选择 -ASP MVC NET 下拉列表 显示 for 循环 | 更新日期: 2023-09-27 18:22:10

我正试图用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();

但在我看来,如果我有多个dropdownlist,他们会将第一个的值作为SelectedValue

因此,如果我从两个下拉列表中选择两个不同的强度:例如,2025。当我提交表单并且页面重新加载值时,两个下拉列表都将显示20作为所选值。。。

我做错了什么?

页面未显示for循环中下拉列表中以前选择的值-ASP.NET MVC

正如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))

它现在运行得很好。