0

我需要能够在 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/>
    }

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

4

2 回答 2

0

首先在您的控制器操作中创建所选项目类型的列表

 DivisionRepository repo = new DivisionRepository(); 
 foreach(var item in repo.Divisions)
 {
      Divisions.add(item );
 }
    var divisions = repo.Divisions;
于 2012-08-03T11:17:48.947 回答
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))
于 2012-08-05T10:27:14.733 回答