我的复选框项目效果很好。但是,我需要将其显示为下拉列表
这是 BookViewModel.cs 中的列表(我视图中显示的模型)
public List<CheckBoxViewModel> Authors { get; set; }
这是 CheckBoxViewModel.cs
public class CheckBoxViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public bool Checked { get; set; }
}
这是我的控制器(将项目添加到 checkboxViewModel
中的作者中 var Results = from b in db.author
select new
{
b.authorID,
name = b.first_name + " " + b.middle_name + " " + b.last_name,
};
var MyViewModel = new BooksViewModel();
var MyCheckBoxList = new List<CheckBoxViewModel>();
foreach (var item in Results)
{
MyCheckBoxList.Add(new CheckBoxViewModel { Id = item.authorID, Name = item.name});
}
MyViewModel.Authors = MyCheckBoxList;
最后这就是我在视图中显示复选框项目的方式 Create.cshtml
<div class="form-group">
@Html.LabelFor(model => model.Authors, ": المؤلف/ المؤلفين", htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-6">
<div style="text-align:right">
@for (int i = 0; i < Model.Authors.Count(); i++)
{
@Html.DisplayFor(m => Model.Authors[i].Name) <text> </text>
@Html.EditorFor(m => Model.Authors[i].Checked)
@Html.HiddenFor(m => Model.Authors[i].Name)
@Html.HiddenFor(m => Model.Authors[i].Id)
<br />
}
</div>
<text class="text-danger"> @ViewBag.empty_authors</text>
@Html.ActionLink("مؤلف جديد ", "CreateAuthor", "books", new { Model }, new { @class = "modal-link btn btn-success", @style = "font-size:20px" })<br />
</div>
<div class="col-md-4">
@*@Html.ListBoxFor(model => model.authorID, new SelectList(ViewBag.authorID, "a_id", "fullname"), htmlAttributes: new { @multiple = "multiple", @class = "form-control" })*@
@Html.ValidationMessageFor(model => model.Authors, "", new { @class = "text-danger" })
</div>
</div>
请注意,直到现在我才使用任何JQuery /脚本,如果有任何方法在我的控制器中使用C#显示下拉列表中的复选框项目,那将是更好的
谢谢。
PS。如果有使用JavaScripts的解决方案,请详细描述。
编辑: 我决定在 Create.cshtml 视图中修复包含我的作者列表的div的高度,并允许它在y轴上滚动,我发现它是我的问题的可接受的解决方案所以不需要额外的javascript代码。
答案 0 :(得分:0)
你不能,你必须找到一个jquery插件才能这样做。