2012-08-03 71 views
0

我需要能夠在ASP MVC 3項目中構建下拉列表的動態列表。我的模型包含以下內容:將下拉列表綁定到asp MVC中的集合3

public IList<Collections.Division> Divisions { get; set; } 


    public SelectList DivisionSelectList 
    { 
     get 
     { 
      DivisionRepository repo = new DivisionRepository(); 

      var divisions = repo.Divisions; 

      return new SelectList(divisions,"DivisionId","DivisionName"); 
     } 
    } 

而科類看起來是這樣的:

public class Division 
    { 
     public int DivisionId { get; set; } 
    } 

我建立下拉菜單的列表中這樣的觀點:

 @for(int i = 0;i< Model.Divisions.Count;i++) 
    { 
      @Model.Divisions[i].DivisionId //for debug only 
      @Html.DropDownListFor(x=>x.Divisions[i].DivisionId,Model.DivisionSelectList) 
      <br/> 
    } 

名單在渲染視圖之前填充分區,我可以看到數據看起來正確,但下拉菜單項未被選中。有誰知道爲什麼?

回答

0

先在你的控制器動作從

DivisionRepository repo = new DivisionRepository(); 
foreach(var item in repo.Divisions) 
{ 
     Divisions.add(item); 
} 
    var divisions = repo.Divisions; 
+0

當創建模型時會填充部門列表,如下所示:private void GetDivisions(int taskId) { DivisionTaskRepository repo = new DivisionTaskRepository(); (x => x.LeadDivision!= true).Select( x => new Collections.Division {DivisionId = x.DivisionId})。ToList(); } – 2012-08-03 11:36:00

+0

請注意,部門存儲庫是從數據庫填充幷包含所有部門實體。這與本地Divisions列表不一樣,它只包含我們感興趣的分區ID列表。此答案中的代碼不起作用。請注意,我確實得到了我期望的數據,問題是下拉列表不會綁定。 – 2012-08-03 11:54:10