我有一个Model 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();
答案 0 :(得分: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);
答案 1 :(得分: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)