从代码中设置MultiSelectList会导致麻烦

时间:2013-04-23 09:00:28

标签: c# asp.net-mvc razor

我正在开发一个简单的asp.net mvc应用程序,但我在选择多选列表中的项目时遇到问题。这是我在控制器中的代码:

 ViewBag.Authors = new MultiSelectList(db.Authors, "AuthorId", "FullName", db.Authors.Where(a => a.Books.Any(b => b.BookId == id)).Select(a => a.AuthorId));

这里是视图中的剃刀代码:

<div class="editor-label">
    @Html.LabelFor(model => model.AuthorIds, "Authors")
</div>
<div class="editor-field">
    @Html.ListBoxFor(model => model.AuthorIds, (MultiSelectList)ViewBag.Authors)
    @Html.ValidationMessageFor(model => model.AuthorIds)
</div>

它呈现多选列表,但它不会选择我在代码中设置的项目。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我觉得回答这个问题已经有点迟了,但工作以预先填充model.AuthorIds(在控制器中)到你想要在视图。在SelectList上设置所选值的方法实际上是用于非强类型的Html.ListBox,而不是强类型的Html.ListBoxFor。