【发布时间】:2015-04-29 15:37:16
【问题描述】:
下面是我的代码(MVC 5),我希望在其中有一个下拉列表,可以选择多个项目。 下拉列表中的每个项目都应该有一个复选框。 And when multiple items selected, comma separated list of items should appear.
我正在使用引导多选。
问题 -
下拉菜单显示默认项目为“未选择”。当我单击下拉列表时,不会出现下拉列表 - 但是当页面加载时,我会看到附加的项目列表。我还从页面来源确认了这一点。
下拉菜单的默认项目应该是“选择一个组”,因为我正在尝试绑定它。但是我不知道如何摆脱这个默认的“未选择”。
型号:
public List<Group> Groups
{
get
{
List<Group> groups = new List<Group>();
groups.Add(new Group() { Id = 1, Name = "AA" });
groups.Add(new Group() { Id = 1, Name = "BB" });
groups.Add(new Group() { Id = 1, Name = "CC" });
return groups;
}
protected set { }
}
public IEnumerable<SelectListItem> DefaultGroupSelectItem
{
get
{
return Enumerable.Repeat(new SelectListItem{Value = "-1", Text = "Select a Group"}, count: 1);
}
}
public IEnumerable<SelectListItem> GroupSelectList
{
get
{
SelectList groupSelectList = new SelectList(Groups, "Id", "Name");
return DefaultGroupSelectItem.Concat(groupSelectList);
}
}
[Display(Name = "Group")]
public int[] SelectedGroupIds { get; set; }
控制器:
public ActionResult CreateTest()
{
UserViewModel userViewModel = new UserViewModel();
return View(userViewModel);
}
查看:
@Html.LabelFor(model => model.SelectedGroupIds, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.SelectedGroupIds,
Model.GroupSelectList,
new {@class = "multiselect", multiple = "multiple"})
@Html.ValidationMessageFor(model =>model.SelectedGroupIds)
</div>
<script src="~/Scripts/jquery-2.1.1.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery-ui-1.11.4.js"></script>
<script src="~/Scripts/bootstrap.js"></script>
<script src="~/Scripts/bootstrap-select.js"></script>
<script src="~/Scripts/bootstrap-multiselect.js"></script>
<script>
$(document).ready(function () {
$('#SelectedGroupIds').multiselect();
});
</script>
谁能指导我缺少什么?
谢谢!
【问题讨论】:
标签: jquery asp.net-mvc-4 twitter-bootstrap-3