2012-08-10 4 views
0

이 함수는 IEnumerable<SelectListItem>을 반환하는 함수입니다.MVC2에서 Html.dropDownList()를 사용하는 데 문제가 있습니다

public IEnumerable<SelectListItem> GetItems() 
     { 


      IEnumerable<SelectListItem> results = null; 

      results =*(some logic)* 


      return results; 
     } 

나는이

<% foreach (IEnumerable<SelectListItem> schdItem in Model.GetItems()) 
{%> 

     <%= Html.DropDownList("xxx", schdItem)%> 

<%} %> 

를 사용하여보기에서 드롭 다운을 결합하려고하지만

Unable to cast object of type 'System.Web.Mvc.SelectListItem' to type 'System.Collections.Generic.IEnumerable`1[System.Web.Mvc.SelectListItem]'. 

가 어떻게이 문제를 해결 않는 오류 메시지와 함께 나누기? 내가

<%= Html.DropDownList("xxx", Model.GetScheduleItems())%> 

지금은 작동

에 수정 asawyer에서 주석을 바탕으로

!

+1

컬렉션에 대해 한 번 선택하는 대신 각 선택 목록 ** 항목 **에 대해 select 요소를 만들려고합니다. – asawyer

+0

@asawyer ... 방금 내 질문에 답했습니다! – developer747

답변

1

루프가 필요하지 않습니다.

<%= Html.DropDownList("xxx", Model.GetItems())%> 

나는 모델이 아니라 getter 메소드에 SelectList 속성을 만들 것입니다.

<%= Html.DropDownList("xxx", Model.MySelectList)%> 
1
<%= Html.DropDownList("xxx", Model.GetItems())%> 

Althought이 그것에 대해 갈 수있는 끔찍한 방법입니다. Model.SelectedItem이 항목의 유형입니다

<%= Html.DropDownListFor(Model.SelectedItem, Model.Items) %> 

, 그리고 Model.Items는 SelectListItems의 컬렉션을 반환하는 속성입니다 : 대신, 이와 같은 Html.DropDownListFor 사용되어야한다.

관련 문제