选择列出未从整数数组赋值的选定值

本文关键字:赋值 数组 整数 选择 | 更新日期: 2023-09-27 18:22:02

如何设置SelectList的 selectedvalue 属性

   var attributeSet = attribute.AttributeSetAttributes.Where(c => c.AttributeSetID == id).Select(c => c.AttributeID).ToArray();
   var attributeList = new SelectList(db.CatAttributes.Where(c => c.IsActive), "ID", "FullName", attributeSet);
    ViewBag.AttributesList = attributeList;

在视图中,我这样使用它

 @Html.ListBoxFor(model => model.Attributes, (SelectList)ViewBag.AttributesList, new { @class = "form-control" })

在上面attributeSet得到integer值,其所选属性在SelectList => attributeList中应该是true,如果我只给出一个值,它会显示选定的属性= true,但是当我传递数组或列表时,它不会设置选定的属性= true

选择列出未从整数数组赋值的选定值

所以我修复了它,我使用了MultiSelectList而不是SelectList,并将第三个参数作为数组传递

var attributeSet = attribute.AttributeSetAttributes.Where(c => c.AttributeSetID == id).Select(c => c.AttributeID).ToArray();
var attributeList = new MultiSelectList(db.CatAttributes.Where(c => c.IsActive), "ID", "FullName");
ViewBag.AttributesList = attributeList;
var model = new AttributeSetViewModel()
        {
            AttributeSet = attribute, Attributes = attributeSet
        };

和在视图中

@Html.ListBoxFor(model => model.Attributes, (MultiSelectList)ViewBag.AttributesList, new { @class = "form-control" })

这将设置我选择的属性 = true。

感谢@Stephen穆克的想法!