我很困惑为什么没有选择选择列表中的相应选项。
当我逐步完成循环时item.DisciplineId = 2
,但未选择学校(“选择”仍然是)。有什么建议吗?
查看
<% foreach (var item in Model.TeamMembers)
{ %>
<tr>
<td>
<%: Html.DropDownListFor(m => item.DisciplineId, Model.MemberDisciplines, "Choose") %>
</td>
</tr>
<% } %>
查看模型
public SelectList MemberDisciplines { get; set; }
public IEnumerable<TeamMember> TeamMembers { get; set; }//Set from the model
MemberDisciplines = new SelectList(new[] {
new SelectListItem{ Text = "Technical", Value = "1"},
new SelectListItem{ Text = "School", Value = "2"},
new SelectListItem{ Text = "Health", Value = "3"}
}, "Value", "Text");
答案 0 :(得分:2)
好的,我建议你将MemberDisciplines属性转换为具有以下内容的方法:
public SelectList GetMemberDisciplines(object selectedValue)
{
return new SelectList(new[] {
new SelectListItem{ Text = "Technical", Value = "1"},
new SelectListItem{ Text = "School", Value = "2"},
new SelectListItem{ Text = "Health", Value = "3"}
}, "Value", "Text", selectedValue);
}
然后你在DropDownListFor中调用它,就像这样:
<% for (int i = 0; i < Model.TeamMembers.Count; i++) { %>
<tr>
<td>
<%: Html.DropDownListFor(m => Model.TeamMembers[i].DisciplineId, Model.GetMemberDisciplines(Model.TeamMembers[i].DisciplineId), "Choose..")%>
</td>
</tr>
<% } %>