Asp.net mvc EntityFramework和MVC视图(显示)

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)保存到主项目数据库中。谢谢 ----

我有一个叫做Projects的主表。此项目上有外键DeptId表示部门ID,SiteId表示站点ID。显示视图时,我希望从部门表中显示部门名称,从站点表中显示站点名称,但当数据保存回项目表时,我想将它们的ID作为外键保存回项目表。 因此,我想在视图中显示Department表和Site表中的名称,但我想在将视图中的数据保存回数据库时将它们的相关ID保存到Project表中。我应该如何与EF合作?处理一个表很容易,但我不清楚如何显示一个字段并将另一个字段(ID)保存到主项目数据库中。谢谢

----更新---

我找到了一个我需要做的例子,但是你能告诉我这个dropdownlist是如何填充的吗。dropdownlist中的第一个参数是否与coltroller中的ViewBag匹配

--从视野--

--来自控制器--


本教程将介绍此场景:

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);
            }