我的视图上有许多Html.Listbox控件,这些控件由一个人填充 IEnumberable<SelectListItem>
是否有一种方法可以在填充数据时自动选择某些项目?
IEnumerable中的特定选择列表项标记为Selected = true,但这不会传达到视图中.
观点是这样的:
<%= Html.ListBox("projects", Model.Projects)%>
Run Code Online (Sandbox Code Playgroud)
谢谢.
Dar*_*rov 10
当然,您始终要定义一个视图模型,该模型将表示您希望在特定视图上显示的信息:
public class MyViewModel
{
public string[] SelectedItems { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后一个控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
SelectedItems = new[] { "1", "3" },
Items = new[]
{
new SelectListItem { Value = "1", Text = "Item 1" },
new SelectListItem { Value = "2", Text = "Item 2" },
new SelectListItem { Value = "3", Text = "Item 3" },
}
};
return View(model);
}
}
Run Code Online (Sandbox Code Playgroud)
最后在你的强类型视图中:
<%= Html.ListBoxFor(
x => x.SelectedItems,
new SelectList(Model.Items, "Value", "Text")
) %>
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,在呈现列表框时将预先选择项目1和项目3.