在下拉列表(MVC)中显示复选框项目

时间:2016-11-12 09:35:37

标签: c# jquery asp.net asp.net-mvc checkbox

我的复选框项目效果很好。但是,我需要将其显示为下拉列表

这是 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代码

1 个答案:

答案 0 :(得分:0)

你不能,你必须找到一个jquery插件才能这样做。