我有一个名为Projects的主表。该项目上有外键,部门ID为DeptId,站点ID为SiteId。当View显示时,我想从Department表中显示部门的名称,并从Site表中显示Site的名称,但是当数据保存回Project表时,我想将他们的ID保存回来Project表作为外键。 因此,我想显示Department表中的名称和View中的Site表,但是当View中的数据保存回数据库时,我想将它们的相关ID保存到Project表中。我应该如何使用EF进行此操作?处理一个表很容易,但我不清楚如何渲染一个字段用于显示并将另一个字段(ID)保存到主项目数据库。感谢
---- UPDATE ------
我找到了一个我需要做的例子,但是你能告诉我这个下拉列表是如何填充的。下拉列表中的第一个参数是否与coltroller中的ViewBag匹配?
- 从视图 -
@Html.DropDownList("DepartmentID", String.Empty)
@Html.ValidationMessageFor(model => model.DepartmentID)
- FROM CONTROLLER -
[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);
}
答案 0 :(得分:0)