未使用ViewBag填充SelectList

时间:2014-10-19 05:28:22

标签: asp.net-mvc-5 viewbag

这段代码令我感到困惑,看起来我错过了什么。

模型

public class County
{
    public int ID { get; set; }
    public string Name { get; set; }
}

public class Education
{
    public int ID { get; set; }
    public string Title { get; set; }
}

控制器

public ActionResult Create()
{
    ViewBag.ListOfCounties = new SelectList(db.Counties, "ID", "Name");
    ViewBag.ListOfEducations = new SelectList(db.Educations, "ID", "Title");

    return View();
}

查看

@Html.DropDownListFor(model => model.Person.County, ViewBag.ListOfCounties as SelectList, "Choose county")
@Html.DropDownListFor(model => model.Person.Education, ViewBag.ListOfEducations as SelectList, "Choose education")

县名列表正常呈现,但教育列表为空白。 不同之处在于我在“教育”中使用“标题”而非“名称”。

然后我尝试在我的模型和控制器中将“Title”重命名为“Name”,然后正常呈现列表。

但我想使用“标题”而不是“名字”!

1 个答案:

答案 0 :(得分:0)

我找到了解决方法,在我的控制器中我将其更改为。

ViewBag.ListOfEducations = new SelectList(db.Educations.Select(c => new { c.ID, c.Title }), "ID", "Title");

但为什么我必须这样做?在我看来,初始代码应该有效。