2011-05-18 64 views
1

我有一個名爲Projects的主表。該項目的外鍵名爲DeptId,部門ID爲SiteId,SiteId爲Site ID。當顯示視圖時,我想要顯示Department表中的部門名稱和Site表中的網站名稱,但是當數據保存回Project表格時,我想將其ID保存回Project表作爲外鍵。 所以,我想顯示部門表中的名稱和視圖中的Site表中的名稱,但是當View中的數據保存回數據庫時,我想將它們的相關ID保存到Project表中。我應該如何去做與EF這樣做?處理一個表格很容易,但我不清楚如何渲染一個字段進行顯示並將另一個字段(ID)保存到主項目數據庫。由於EntityFramework和MVC視圖(顯示)

---- ------ UPDATE

我發現了什麼,我需要做的,但你能告訴我這個下拉列表如何被填充的例子。下拉列表中的第一個參數是否與控制檯中的ViewBag匹配?

--from VIEW--



      @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

* ASP.NET MVC *,對?我已經添加了標籤,希望沒有錯。 – Slauma 2011-05-18 19:24:47

+0

到目前爲止你有什麼? – Francisco 2011-05-18 20:24:00

+0

我用scafolding來創建一個創建視圖。該模型是來自實體模型的項目模型。項目表具有投影(主鍵),分離(關聯部門表到項目),siteid(關聯站點表到項目)Scafolding添加了以下@ Html.EditorFor(model => model.DepartmentId) @ Html.ValidationMessageFor(model => model.DepartmentId),但我想要的是將DepartmentName顯示爲下拉列表並將項目保存到項目表 – Keith 2011-05-19 00:09:17

回答