列表框中多个默认选择项
本文关键字:默认 选择 列表 | 更新日期: 2023-09-27 18:14:03
我正在考虑为具有多个类别(在列表中预定义)的Company对象创建Edit页面。我有通过ViewBag发送的列表,并有用户在创建页面中选择的类别在数组中,这要归功于ViewModel。
我无法找出一种方法来让ListBox预先填充我的数组中的多个值。我正在使用jQuery并能够获得一个要选择的值,但是当我尝试多个值时,什么也没有显示。什么好主意吗?
@Html.ListBox("Category", new SelectList(ViewBag.Category, "Text", "Value"))
SelectListItem
对象有一个Selected
属性来表示这一点。所以我想这取决于你如何构建SelectList
。当前你这样做:
new SelectList(ViewBag.Category, "Text", "Value")
可以工作,但是不能控制单个SelectListItem
。您可以使用相同的方法重载构建IEnumerable<SelectListItem>
,而不是构建SelectList
。最初可能看起来像这样:
ViewBag.Category.Select(c => new SelectListItem
{
Text = c.Text,
Value = c.Value
});
此时,您可以更好地控制各个项目。现在的问题是决定应该选择哪些。你是怎么确定的?它是Category
对象上的属性吗?像这样的?:
ViewBag.Category.Select(c => new SelectListItem
{
Text = c.Text,
Value = c.Value,
Selected = c.Selected
});
或者其他条件?:
ViewBag.Category.Select(c => new SelectListItem
{
Text = c.Text,
Value = c.Value,
Selected = c.SomeValue == SomeCondition
});
如何决定取决于您,理想情况下,您可以在逻辑上添加到这里使用的后备模型中。