我正在研究为具有多个类别(在列表中预定义)的公司对象创建编辑页面。我将列表通过ViewBag发送,并且由于ViewModel而具有用户在数组的“创建”页面中选择的类别。
我无法找到一种方法让ListBox预填充数组中的多个值。我正在玩jQuery并且能够获得一个值被选中,但是当我尝试不止一个没有出现时。有什么想法吗?
@Html.ListBox("Category", new SelectList(ViewBag.Category, "Text", "Value"))
答案 0 :(得分:2)
SelectListItem
对象具有Selected
属性来指示这一点。所以我想这将归结为你如何构建SelectList
。目前你这样做:
new SelectList(ViewBag.Category, "Text", "Value")
哪个有效,但无法控制个别SelectListItem
。您可以构建SelectList
using the same method overload,而不是构建IEnumerable<SelectListItem>
。最初可能看起来像这样:
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
});
您如何确定这取决于您,理想情况下您可以逻辑地添加到此处使用的支持模型。