在SelectItem中,我返回一个对象/值的集合,以便在下拉列表中使用。我需要在返回的列表中找到一个特定的项目,并将Selected属性设置为true,如果它匹配传入的值(stateCode
)...我有这个显然不起作用。 //psuedo
评论之后的行是我想要进行更改的地方。有关如何做到这一点的任何想法?我似乎无法访问我想要更改的属性...
SelectList retVal = new SelectList(this.db.States.Where(x => x.Col1== someVal), "ValueCol", "TextCol", someVal);
foreach (SelectListItem item in retVal) {
//psuedo
retVal[item.Index].Selected = item.Value == stateCode ? true : false;
}
return retVal;
根据要求,以下是我如何呈现此SelectItem绑定的下拉列表:
<div class="select" id="StateDropDown">
<label for="StateProvince">@Resources.Expert.State_or_Province:</label>
@Html.DropDownListFor(x => x.StateProvince, Model.StateList)
</div>
答案 0 :(得分:1)
要为下拉列表指定选定值,您无需在选择列表中设置值。您需要做的就是在使用for helper时设置模型的值。所以你的下拉
@Html.DropDownListFor(x => x.StateProvince, Model.StateList)
确保将StateProvince设置为要选择的值。还要确保StateProvince的值匹配SelectList Model.StateList中的值。
答案 1 :(得分:0)
将选定的值传递给@ Html.DropdownList方法是合适的。
假设stateCode处于您希望被选中的状态。
喜欢这个。
<div class="select" id="StateDropDown">
<label for="StateProvince">@Resources.Expert.State_or_Province:</label>
@Html.DropDownListFor(x => x.StateProvince, Model.StateList, stateCode)