//MVC View
<div class="control-group">
@Html.LabelFor(x => x.users, new { @class = "control-label" })
<div class="controls">
@Html.ListBoxFor(x => x.SelectedUsers, Model.Users, new { @class = "chosen-select", multiple = "multiple" })
</div>
</div>
<script type="text/javascript">
$(".chosen-select").chosen();
$(".chosen-select").trigger("chosen:updated");
$(".chosen-select").trigger("liszt:updated");
$(".chosen-select").chosen().change();
</script>
//MVC Controller
model.SelectedUsers = User.Where(x => x.ROLE == 2)
.Select(x => new SelectListItem
{
Text = x.Name,
Value = x.Id,
}).ToList();
model.Users = User
.Select(x => new SelectListItem
{
Text = x.Name,
Value = Id,
}).ToList();
我有10个用户和3个SelectedUsers,它们从控制器操作中正确返回。 创建功能正常工作但在编辑时我没有在所选的ListBox控件中选择3个预先选择的用户。当我点击listBox时,它会显示所有10个用户。 我试图使用http://harvesthq.github.io/chosen/中的文档来实现这一点 我不确定这是否是在mvc razor视图中执行此操作的正确语法或方法。任何正确方向的帮助都会非常有用,谢谢..
答案 0 :(得分:1)
属性SelectedUsers
必须为int[]
(or IEnumerable<int>
),而不是IEnumerable<SelectListItem>
。
如果它包含与选项中的值匹配的值,则会选中它们。