默认选定值未显示在Asp.Net MVC Razor视图的MultiSelectList中

默认选定值未显示在Asp.Net MVC Razor视图的MultiSelectList中,razor,asp.net-mvc-5,multi-select,Razor,Asp.net Mvc 5,Multi Select,我的模型中有这些字段 public MultiSelectList Subjects { set; get; } public string[] CCUsers { get; set; } 在控制器中,我将这些属性设置为: model.CCUsers = GetAdditionalCCusers(routingInstruction.ID);//returns already selected data from database model.Subjects=ViewBag.CCUsers

我的模型中有这些字段

public MultiSelectList Subjects { set; get; }
public string[] CCUsers { get; set; }
在控制器中,我将这些属性设置为:

model.CCUsers = GetAdditionalCCusers(routingInstruction.ID);//returns already selected data from database
model.Subjects=ViewBag.CCUsers = new MultiSelectList(correspondenceInfo.SPUsers, "Title", "Title", model.CCUsers.ToList());
我认为:

@Html.ListBoxFor(model => model.CCUsers, Model.Subjects)
问题是当页面被加载时,默认情况下,我从数据库获取的值没有被选中


调试时,我可以看到在model.Subjects中,两个值的Selected属性设置为true。

如果CCUsers的值包含与选项中的值匹配的值,则将选择它们。注意:MultiSelectList构造函数中没有点设置model.CCUsers.ToList,因为您绑定到的属性只是忽略了它的值model.CCUsers是Admin和User 1;在model.Subjects.SelectedValues中,这些值是相同的。看看生成的html-你有SomeIdValue和SomeIdValue吗?但奇怪的是,你有使用Title属性的选项值和使用Id属性的显示文本。我已经更新了帖子。我正在使用dataValueField和dataTextField的标题。在调试时,我可以在CCUsers Admin、User 1和Subject中看到两个字符串值,Subject有Subject.Item[0]={ID=17,Title=Admin},html呈现为Admin User 1