我正在尝试手动创建一个列表,然后将其发送到视图:
我有以下几点
var MyList = new[] {
new ListEntry {Name = "John Moore"},
new ListEntry {Name = "Jim Baker"}
};
ViewBag.MyList = new SelectList(MyList , "Name"); 在视图中,我有以下内容:
@Html.DropDownListFor(model => model.name.UserName, (IEnumerable<SelectListItem>)ViewBag.MyList)我期望在列表中看到John Moore和Jim Baker,但是列表中有2行,如下所示: Digit1.Controllers.ListEntry
任何想法,我可以列表显示名单,以显示姓名。此外,当我提交时,我还需要更新表中的名称(例如: John Moore或Jim Baker)
发布于 2011-11-29 02:52:57
您为SelectList使用了错误的重载。您需要使用重载来告诉它使用哪个显示/值:
new SelectList(myList, "Value", "Name");在本例中,Value和Name是对象上要用于选择列表的value和display字段的属性的名称。
您正在使用的重载如下:
SelectList(IEnumerable<T> items, object selectedValue)基本上,您是说您的SelectList具有"Name“作为所选(默认)值。
https://stackoverflow.com/questions/8300744
复制相似问题