加载多个具有相同名称的 DropDownLists 时遇到问题。我在这里附上我的代码:
看法:
@{
int i = 1
foreach (var queue in Model.Queues)
{
using (Html.BeginForm("ChangeQueueState", "Home", FormMethod.Post))
{
List<SelectListItem> sli = ViewBag.states[i - 1];
<div>@Html.DropDownList("state", sli)</div>
}
}
i++
}
视图中有更多我没有显示的代码。
在我的控制器中,我只需更改相应队列的状态并加载其中包含状态列表ViewBag.states
的列表,SelectedListItem
其中每个队列的正确状态为“已选择”。
问题是当视图被加载时,所有的DropDownLists
都加载了最后修改的状态。例如,如果我将第 5 个队列从“打开”更改为“关闭”,则所有DropDownLists
显示都Closed
选择了“”选项(尽管在数据库中正确应用了更改)。
我认为问题是由于 MVC 在DropDownList
名称和SelectListItem
关联项之间进行的绑定,但我无法将 DDL 名称更改为"state" + @i
,因为状态绑定到在ChangeQueueState
我的 Controller 的“”方法中接收到的参数。
我将衷心感谢您的帮助。提前致谢!