在 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,你帮我指明了正确的方向。
我有以下代码,当我更新时,我从下拉列表中得到了正确的结果。 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,你帮我指明了正确的方向。