从代码中设置MultiSelectList的问题

本文关键字:问题 MultiSelectList 设置 代码 | 更新日期: 2023-09-27 18:10:22

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

,下面是razor代码的内部视图:

<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>

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

从代码中设置MultiSelectList的问题

我想现在回答这个问题有点晚了,但是应该工作到预填充模型。authorid(在控制器中)到您希望在视图中选择的值。在SelectList上设置所选值的方法实际上是用于非强类型Html的。ListBox,而不是强类型的Html.ListBoxFor.