我需要能够在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/>
}
在渲染视图之前填充了分区列表,我可以看到数据看起来正确,但未选择下拉项。有谁知道为什么?
答案 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))