Asp.net mvc EntityFramework和MVC视图(显示)
我有一个叫做Projects的主表。此项目上有外键DeptId表示部门ID,SiteId表示站点ID。显示视图时,我希望从部门表中显示部门名称,从站点表中显示站点名称,但当数据保存回项目表时,我想将它们的ID作为外键保存回项目表。 因此,我想在视图中显示Department表和Site表中的名称,但我想在将视图中的数据保存回数据库时将它们的相关ID保存到Project表中。我应该如何与EF合作?处理一个表很容易,但我不清楚如何显示一个字段并将另一个字段(ID)保存到主项目数据库中。谢谢 ----更新--- 我找到了一个我需要做的例子,但是你能告诉我这个dropdownlist是如何填充的吗。dropdownlist中的第一个参数是否与coltroller中的ViewBag匹配 --从视野-- --来自控制器--Asp.net mvc EntityFramework和MVC视图(显示),asp.net-mvc,entity-framework,views,Asp.net Mvc,Entity Framework,Views,我有一个叫做Projects的主表。此项目上有外键DeptId表示部门ID,SiteId表示站点ID。显示视图时,我希望从部门表中显示部门名称,从站点表中显示站点名称,但当数据保存回项目表时,我想将它们的ID作为外键保存回项目表。 因此,我想在视图中显示Department表和Site表中的名称,但我想在将视图中的数据保存回数据库时将它们的相关ID保存到Project表中。我应该如何与EF合作?处理一个表很容易,但我不清楚如何显示一个字段并将另一个字段(ID)保存到主项目数据库中。谢谢 ----
本教程将介绍此场景:
ASP.NET MVC,对吗?我添加了标签,希望没有错。到目前为止你有什么?我使用scafolding创建了一个创建视图。模型是来自实体模型的项目模型。项目表包含projectid(主键)、departmentid(将部门表与项目关联)、siteid(将站点表与项目关联)和以下@Html.EditorFor(model=>model.departmentid)@Html.ValidationMessageFor(model=>model.departmentid)但我想要的是将DepartmentName显示为下拉列表,并将departmentid保存到项目表中。因此,默认情况下,“创建”视图仅显示部门id。我需要从department表中提取DepartmentName以显示在视图中,并将部门id保存到项目表中
@Html.DropDownList("DepartmentID", String.Empty)
@Html.ValidationMessageFor(model => model.DepartmentID)
[HttpPost]
public ActionResult Create(Course course)
{
try
{
if (ModelState.IsValid)
{
unitOfWork.CourseRepository.Insert(course);
unitOfWork.Save();
return RedirectToAction("Index");
}
}
catch (DataException)
{
//Log the error (add a variable name after DataException)
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
}
PopulateDepartmentsDropDownList(course.DepartmentID);
return View(course);
private void PopulateDepartmentsDropDownList(object selectedDepartment = null)
{
var departmentsQuery = unitOfWork.DepartmentRepository.Get(
orderBy: q => q.OrderBy(d => d.Name));
ViewBag.DepartmentID = new SelectList(departmentsQuery, "DepartmentID", "Name", selectedDepartment);
}