MVC DropDownListFor LINQ填充IEnumerable

时间:2019-01-16 20:14:58

标签: linq model-view-controller drop-down-menu selected

因此,我有一个小型的Search应用程序,它具有文本框,下拉列表,日历等多个选项,可用于搜索不同的列,而不是其他。因此,客户端需要能够在下拉列表之一中选择倍数选项。我设法使用以下方法选择倍数:

在“我的视图”中/ Index.cshtml

<dt>@Html.DisplayNameFor(m => m.TypeOfJob):</dt>
<dt>@Html.DropDownListFor(m => m.TypeOfJob, Model.TypeOfJobList, new { @class = "form-control", @multiple = "multiple" })</dt>

然后在“我的模型” /SearchDocument.cs中,我具有以下内容:

 [Display(Name = "Type of Job")]
    public string TypeOfJob { get; set; }
    public IEnumerable<DropDownListItem<string>> TypeOfJobList
    {
        get
        {
            using (var db = new SearchDocument())
            {
                return db.Document.Where(f => f.XTOJ != "").Select(f => f.XTOJ).Distinct()
                        .Select(s => new DropDownListItem<string> { ID = s, Label = s, Title = s }).ToArray();
            }
        }
    }

对于返回结果,我有几个Where子句,其中一个是DropDownList:

             using (var db = new SearchDocument())
                        {
                            var SearchDocument = db.Document.AsQueryable(); //FOR DOCUMENTS
                               if (!string.IsNullOrEmpty(TypeOfJob))
                               {
                                   SearchDocument = SearchDocument.Where(f => f.XTOJ == TypeOfJob);
                               }


                        Documents = SearchDocument.Select(f => new DocumentSearch()
                        {
                            ID = f.ID,
                            Jobs = f.XTOJ,
                        }).ToArray();
                        }

所有这些代码都与“选定单个项目”一起使用,但是在下拉列表中选择多个值时,它仅使用最后一个选定的项目。可能在where子句中,我需要执行While While值。感谢您的帮助。

0 个答案:

没有答案