2

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

1 回答 1

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>
<% } %>
于 2010-12-08T23:09:41.793 回答