0

我正在开发一个简单的 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>

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

4

1 回答 1

0

我想回答这个问题有点晚了,但它应该可以将 model.AuthorIds (在控制器中)预填充到您想要在视图中选择的值。在 SelectList 上设置选定值的方法实际上是用于非强类型 Html.ListBox,而不是强类型 Html.ListBoxFor。

于 2016-12-09T17:11:29.470 回答