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 關注
- 108 瀏覽
添加回答
舉報