0

我有一个模型 IPACS_Master_List,它是数据库中名为 IPACS_Master_List 的表的完整映射。

这是我的控制器:

public ActionResult Index()
        {
            var docs = db.IPACS_Master_List;

            return View(docs);
        }

在我看来,我正在显示整个表格。在我看来,我正在尝试添加一个DropDownList将填充每个部门的内容。

我需要传递整个表格,因为这是页面的默认视图,能够查看表格中的所有内容。我在尝试获取不同的部门列表并将其放入DropDownList. 我尝试了很多不同的方法,并且不断地撞到一堵砖墙。在这一点上,我将采用几乎任何有效的方法。

还了解我对 MVC、LINQ 和 Razor 非常陌生,因此非常感谢您提供额外的解释。

默认视图完美运行,它正确显示所有信息。但我什至似乎无法填充下拉列表。

----- 编辑 #1 ----

这是我获取不同部门列表的一种方式。不确定这是否是正确的方法,但希望它有所帮助。

    var departments = db.IPACS_Master_List.Where(x => (x.department != null))
               .Select(s => new SelectListItem
                {
                    Value = s.department,
                    Text = s.department
                })
                .Distinct();
4

2 回答 2

2

在你的模型中,我假设你有这样的东西:

public class YourModel{
 public IEnumerable<SelectListItem> Departments{get;set;}
 public string SelectedDepartment{get;set;}

}

在你看来应该有这样的东西来呈现

@Html.DropDownListFor(model => model.SelectedDepartment, new SelectList(@Model.Departments, "key", "value", Model.SelectedDepartment))  

在您的控制器中,您将拥有类似的东西

YourModel model=new YourModel();
model.Departments = db.IPACS_Master_List.Where(x => (x.department != null))
               .Select(s => new SelectListItem
                {
                    Value = s.department,
                    Text = s.department
                })
                .Distinct();
return View(model);
于 2013-04-18T15:58:43.000 回答
0

我能够让它工作,通过一个教程网站偶然发现了答案。

我的控制器是:

public ActionResult Index()
        {
            var docs = db.IPACS_Master_List;

            ViewBag.Departments = db.IPACS_Master_List.Where(x => (x.department != null)).Select(s => new SelectListItem
            {
                Value = s.department,
                Text = s.department
            })
            .Distinct();

            return View(docs);
        }

我将此添加到视图中。

@Html.DropDownList("Departments", string.Empty)
于 2013-04-18T16:03:16.563 回答