【发布时间】:2014-12-08 12:15:04
【问题描述】:
//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 个预选用户。当我单击列表框时,它显示了所有 10 个用户。 我尝试使用来自http://harvesthq.github.io/chosen/ 的文档来实现这一点 我不确定这是否是在 mvc razor 视图中执行此操作的正确语法或方法。任何朝着正确方向的帮助都会非常有用,谢谢..
【问题讨论】:
-
属性
SelectedUsers必须是int[]而不是IEnumerable<SelectListItem>如果它包含与选项中的值匹配的值,它们将被选中。 -
它按照您的建议工作。@StephenMuecke 您可以将其发布为答案吗。非常感谢您的关注。
标签: jquery asp.net-mvc asp.net-mvc-4 razor jquery-chosen