Model里有一個List:SearchMokutekitiResults
該List里有一列數據是cd類型(端末cd),顯示時需要以List<SelectListItem>的形式顯示出來,并且可以編輯
該列的數據源已封裝為List端末
前臺使用for遍歷,以“DropDownListFor”的形式顯示SearchMokutekitiResults里的端末
結果Selected(端末cd)綁定不上
經調查,這屬于微軟的一個bug
解決方法:
笨辦法,手動綁定
@for (int i = 0; i < Model.SearchMokutekitiResults.Count; i++)
{
<tr>
<td><span style="width: 80px;">@{
List<SelectListItem> list = new List<SelectListItem>(Model.List端末);
for (int j = 0; j < list.Count; j++)
{
list[j].Selected = false;
}
var tani = list.Where(item => item.Value == Model.SearchMokutekitiResults[i].端末ID.ToString()).FirstOrDefault();
if (tani != null)
{
tani.Selected = true;
}
}
@Html.DropDownListFor(modelItem => modelItem.SearchMokutekitiResults[i].端末ID, list, new { @class = "form-control" })</span></td>
</tr>
}
{
<tr>
<td><span style="width: 80px;">@{
List<SelectListItem> list = new List<SelectListItem>(Model.List端末);
for (int j = 0; j < list.Count; j++)
{
list[j].Selected = false;
}
var tani = list.Where(item => item.Value == Model.SearchMokutekitiResults[i].端末ID.ToString()).FirstOrDefault();
if (tani != null)
{
tani.Selected = true;
}
}
@Html.DropDownListFor(modelItem => modelItem.SearchMokutekitiResults[i].端末ID, list, new { @class = "form-control" })</span></td>
</tr>
}