2013-09-01 56 views
0

我有數據從一個電話回來在我的控制器下拉列表的集合,如下所示:如何投放自定義模式下拉列表爲選擇列表的

ViewData["statuses"] = db.GetStatuses(); 

它的類型是「YeagerTechModel.Status [ ]」。

我收到以下錯誤,當我嘗試並列出一個簡單的下拉列表裏面,我認爲數據:

Exception Details: System.InvalidCastException: Unable to cast object of type 'YeagerTechModel.Status[]' to type 'System.Collections.Generic.List`1[YeagerTechModel.Status[]]' 

我的觀點是設置如下:

@using (Html.BeginForm("AddSingleStatus", "Status", new AjaxOptions { HttpMethod = "POST", })) 
{ 
    @Html.ValidationSummary(true) 
    <table> 
     <tr> 
      <td> 
       <div class="display-label"> 
        @Html.LabelFor(model => Model.Description); 
       </div> 
       <div class="editor-field"> 
        @Html.DropDownListFor(model => Model.Description, new SelectList((List<YeagerTechModel.Status[]>)ViewData["statuses"], "StatusID", "Description")); 
        @Html.ValidationMessageFor(model => Model.Description) 
       </div> 
      </td> 
      </tr> 
     <tr> 
      <td> 
       <input type="submit" value='@Resources.Add' /> 
      </td> 
     </tr> 
    </table> 
} 

我該如何正確地將收藏集轉換回簡單的下拉列表?

+1

而不是將它轉換爲'List '試試將它轉換成'YeagerTechModel.Status []'。數組實現IEnumerable,所以它應該很好地將它傳遞給'SelectList'。 – asymptoticFault

+0

非常感謝!這工作得很好:) – sagesky36

+0

我怎麼能給你這個積分? – sagesky36

回答

1

而不是將它鑄造到List<YeagerTechModel.Status[]>嘗試只是將它鑄造到YeagerTechModel.Status[]。數組實現IEnumerable,所以它應該很好地傳遞給SelectList