2 回答
TA贡献1853条经验 获得超9个赞
由于您在ViewBag定义中提供了这样的项目值,这清楚地表明了字符串值:
ViewBag.ItemsBag = db.Items.Select(v => new SelectListItem
{
Text = v.ItemName,
Value = v.ItemId.ToString() // implies all values are strings
});
然后与DropDownListFor/绑定的属性ListBox必须具有List<string>或string[]类型才能正确绑定。usingICollection<Item>不会绑定,因为它是一个复杂的对象,而 helper 需要值类型(数字类型/字符串)才能绑定。
因此,您必须首先创建具有类型的属性List<string>:
public List<string> SelectedValues { get; set; }
然后使用ListBoxFor具有该属性的助手:
@Html.ListBoxFor(model => model.SelectedValues, new MultiSelectList(ViewBag.ItemsBag, "Value", "Text", Model.ItemsSelected.Select(x => x.Value)), new { @class = "form-control features-segments select2-multiselect-checkbox", multiple = "multiple" })
笔记:
如果ItemId属性具有int类型(并且所有值都可以转换为int),请尝试使用List<int>/int[]类型而不是List<string>/ string[]:
public List<int> SelectedValues { get; set; }
TA贡献1875条经验 获得超3个赞
请在 jQuery 的文档就绪状态下尝试以下代码:
var result = [1,3,5];// Array of SelectedValues$("#DropdownID").val(result); // DropdownID = your multi select dropdown Id
- 2 回答
- 0 关注
- 87 浏览
添加回答
举报