MVC SelectList传递值

时间:2011-11-28 18:50:15

标签: asp.net-mvc

我正在尝试手动创建列表,然后将其发送到视图:

我有以下

    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,但是列表中有两行,其中包含以下内容:Digit1.Controllers.ListEntry

关于如何在列表中显示名称的任何想法。当我提交时,我也需要这个名字 表中更新(例如:John Moore或Jim Baker)

1 个答案:

答案 0 :(得分:1)

您对SelectList使用了错误的重载。您需要使用重载来告诉它使用哪个显示/值:

new SelectList(myList, "Value", "Name");

在这种情况下,值和名称是对象上要用于选择列表的值和显示字段的属性的名称。

您正在使用的超载是:

SelectList(IEnumerable<T> items, object selectedValue)

基本上你说你的SelectList有“Name”作为选中(默认)值。