Asp.net mvc 使用一个模型获取数据的多个变体
我有一个模型IPACS_Master_List,它是数据库中名为IPACS_Master_List的表的完整映射 这是我的控制器:Asp.net mvc 使用一个模型获取数据的多个变体,asp.net-mvc,linq,razor,Asp.net Mvc,Linq,Razor,我有一个模型IPACS_Master_List,它是数据库中名为IPACS_Master_List的表的完整映射 这是我的控制器: public ActionResult Index() { var docs = db.IPACS_Master_List; return View(docs); } 在我看来,我正在显示整个表。在我看来,我正在尝试添加一个DropDownList,它将填充每个部门 我需要传递整个表
public ActionResult Index()
{
var docs = db.IPACS_Master_List;
return View(docs);
}
在我看来,我正在显示整个表。在我看来,我正在尝试添加一个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();
在你的模型中,我假设你有这样的东西:
public class YourModel{
public IEnumerable<SelectListItem> Departments{get;set;}
public string SelectedDepartment{get;set;}
}
在你的控制器里,你会有这样的东西
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);
我能够让它工作,通过一个教程网站偶然发现了答案
我的控制器是:
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)
您是否试图在mvc视图中只显示一个包含不同部门的下拉列表,而不显示其他数据?@NBrowne此视图当前在您首次访问时显示整个表。我想提供两个下拉框,一个填充有部门,另一个填充有过程。因此,当用户选择一个选项时,它会过滤掉数据。但现在我只专注于尝试填充下拉列表并使其可见。我没有为选择列表设置模型,我不确定如何创建包含我需要的当前模型的新模型,以及如何为选择列表项添加功能。所以我只是用viewbag绕过它。对mvc还是很陌生的。我让你知道,在mvc中,你可以很容易地将一个模型包含在另一个模型中。还要注意,在尝试将Mvc模型发布到控制器操作时,将name属性设置为string.Empty会导致问题。您会发现SelectedDepartment始终为空,这是因为model binder使用页面上元素的名称来确定值。scott gutheries的博客中提供了MVC的良好分步指南。这里还有29个视频是针对MVC 2的,但仍然适用于MVC的更新版本,我想你会发现这非常有用。有关MVC模型绑定的更多详细信息,请参阅。非常感谢您提供的所有附加信息。我很感激,努力学习这些新东西。:)
@Html.DropDownList("Departments", string.Empty)