好的,我在某些事情上遇到了很多麻烦,我认为这很容易。 我正在尝试使用表中的不同值填充下拉列表。

该linq提供了每个下拉选项所需的部门列表。

IPACS_Master_Lists
   .Where (x => (x.Department != null))
   .Select (s => s.Department)
   .Distinct ()
   .Select (v => v)

我该如何制作一个下拉列表?

我试图弄乱@ Html.DropDownList,但似乎无法正常工作。

我的控制器如下。 我试图通过ViewBag传递它,但也无法使其正常工作。

public ActionResult Index()
        {
            var docs = db.IPACS_Master_List;
            ViewBag.Departments = new SelectList(db.IPACS_Master_List.Where(x => (x.department != null)).Select (s => s.department).Distinct().Select (v => v), "id", "department", 0);
            return View(docs);
        }

===============>>#1 票数:3 已采纳

不要使用ViewBag ,每次使用它时,小猫都会死亡。

认真地讲,这确实一个坏习惯。

首先,在您的模型中假设:

public class MyModel
{
   public List<Documents> Docs { get; set; } //don't know what type this is
   public List<SelectListItem> Departments { get; set; }
   public string Department { get; set; } //this holds what you select in the view
}

然后将您的操作更改为:

public ActionResult Index()
{
    MyModel model = new MyModel();
    model.Docs = db.IPACS_Master_List;
    model.Departments = db.IPACS_Master_List
       .Where(x => x.department != null)
       .Select(s => s.department)
       .Distinct()
       .Select(s => new SelectListItem
           {
               Text = s.Name,
               Value = s.Name
           })
       .ToList();

        return View(model);
}

然后让您的视图使用模型MyModel

然后,您可以执行以下操作:

@Html.DropDownListFor(m => m.Department, Model.Departments)

===============>>#2 票数:1

将您的收藏变成<SelectListItem>的收藏

var myResult = IPACS_Master_Lists.Where (x => (x.Department != null))
   .Select (s => s.Department)
   .Distinct ()
   .Select (v => new SelectListItem{
    Value = v.ResultIdField,
    Text = v.ResultNameField
    })

然后将其链接到实际的下拉列表:

如果您通过ViewModel传递:

@Html.DropDownListFor(model=>model.SelectedResultId, @Model.myResult ,"- Select One")

如果您要通过ViewBag传递您的收藏集(我会远离this):

@Html.DropDownListFor(model=>model.SelectedResultId, @ViewBag.myResult ,"- Select One")

如果您在视图中根本没有ViewModel,则可以选择另一种选择:

@Html.DropDownList("selectListName", ViewBag.myResult, new {id = "selectListId"})

还要检查我大约一年前在这里问过的问题。 它应该可以帮助您: 无法获取我的DropDownListFor来在下拉菜单中选择一个选定的SelectListItem项目

  ask by James Wilson translate from so

未解决问题?本站智能推荐: