2010-12-08 4 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

관련 문제