选择MultiSelect不在编辑视图中显示预先选择的值

时间:2014-12-08 12:15:05

标签: jquery asp.net-mvc asp.net-mvc-4 razor jquery-chosen

//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视图中执行此操作的正确语法或方法。任何正确方向的帮助都会非常有用,谢谢..

1 个答案:

答案 0 :(得分:1)

属性SelectedUsers必须为int[]or IEnumerable<int>),而不是IEnumerable<SelectListItem>

如果它包含与选项中的值匹配的值,则会选中它们。

相关问题