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 に答える