2010-12-08 15 views
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"); 

答えて

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> 
<% } %> 
+0

私はそれがそうだったと思います。私は少し混乱させて申し訳ありません(私はコードを更新しました)、しかし私は間違いなく単純な 'string'変数である' DisciplineId'を取得しています。 – MisterIsaak

+0

答えを更新しました。 –

+0

完璧に動作しますが、私はなぜそれが他の方法でも幸せではなかったことを知って欲しいと思います。私は方法を作ることを考えなかった、私はそれを念頭に置いておく必要があります。助けてくれてありがとう! – MisterIsaak

関連する問題