在 mvc 下拉菜单中维护状态

maintain state in a mvc drop down

我有以下代码,当我更新时,我从下拉列表中得到了正确的结果。 I.E.. 如果我将其中一个列表项更新为 "Closed",它会完全按照视图和数据库中的指示进行操作。

但是一旦我离开视图然后再回来,我就失去了 "state"。有什么方法可以添加 "Selected" 我需要重新考虑吗?

@{
    var listItems = new List<ListItem> {
    new ListItem {Text = "Open", Value = "Open"},
    new ListItem {Text = "Closed", Value = "Closed"},
    new ListItem {Text = "Standby", Value = "Standby"}};
}
@Html.DropDownList("Parks[" + (@i + 10) + "].ParkStatus", new SelectList(listItems), new { @class = "form-control" })

编辑

我想我需要在以下字符串中使用某种 "Is Selected"

@Html.DropDownList("Parks[" + (@i + 10) + "].ParkStatus", new SelectList(listItems), new { @class = "form-control" })

您需要使用 @Html.DropDownListFor - 请参阅此问题 Difference between DropDownlist or DropDownListFor Html helper

解决了,我在正确的轨道上,需要额外的参数:

@Html.DropDownList("Parks[" + (@i + 10) + "].ParkStatus", new SelectList(listItems), new { @class = "form-control" })

现在看起来像这样:

@Html.DropDownList("Parks[" + (@i + 10) + "].ParkStatus", new SelectList(listItems, "Text", "Value", Model[i].ParkStatus), new { @class = "form-control" })

并且工作得很好。

感谢你帮助 ste-fu,你帮我指明了正确的方向。