SelectList 选择的值不是从整数数组分配的
SelectList selected values not assigning from an array of integers
如何设置 SelectList
的选定值 属性
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;
在 Views 中我就是这样使用的
@Html.ListBoxFor(model => model.Attributes, (SelectList)ViewBag.AttributesList, new { @class = "form-control" })
在上面 attributeSet
中得到 integer
值,其选择的 属性 应该在 SelectList => attributeList
中为真,如果我只给出一个值,它显示选择 属性 = 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 Muecke 的想法!!
如何设置 SelectList
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;
在 Views 中我就是这样使用的
@Html.ListBoxFor(model => model.Attributes, (SelectList)ViewBag.AttributesList, new { @class = "form-control" })
在上面 attributeSet
中得到 integer
值,其选择的 属性 应该在 SelectList => attributeList
中为真,如果我只给出一个值,它显示选择 属性 = 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 Muecke 的想法!!