为什么在下拉列表中没有选择任何选项?

时间:2010-12-08 21:13:48

标签: asp.net-mvc asp.net-mvc-2 drop-down-menu selectlist

我很困惑为什么没有选择选择列表中的相应选项。 当我逐步完成循环时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");

1 个答案:

答案 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>
<% } %>