将下拉列表绑定到asp MVC 3中的集合

时间:2012-08-03 11:07:53

标签: asp.net-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");
        }
    }

Division类看起来像这样:

    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/>
    }

在渲染视图之前填充了分区列表,我可以看到数据看起来正确,但未选择下拉项。有谁知道为什么?

2 个答案:

答案 0 :(得分:0)

首先从

创建控制器操作中所选项目类型的列表
 DivisionRepository repo = new DivisionRepository(); 
 foreach(var item in repo.Divisions)
 {
      Divisions.add(item );
 }
    var divisions = repo.Divisions;

答案 1 :(得分:0)

这看起来像是MVC中的一个错误,请看这里:
DropDownListFor not binding on Edit View with repeating items (List<T>)

我必须这样做:

@Html.DropDownListFor(x=>x.Divisions[i].DivisionId,new SelectList(Model.DivisionSelectList,"Value","Text",Model.Divisions[i].DivisionId))