我有一個名爲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);
}
* ASP.NET MVC *,對?我已經添加了標籤,希望沒有錯。 – Slauma 2011-05-18 19:24:47
到目前爲止你有什麼? – Francisco 2011-05-18 20:24:00
我用scafolding來創建一個創建視圖。該模型是來自實體模型的項目模型。項目表具有投影(主鍵),分離(關聯部門表到項目),siteid(關聯站點表到項目)Scafolding添加了以下@ Html.EditorFor(model => model.DepartmentId) @ Html.ValidationMessageFor(model => model.DepartmentId),但我想要的是將DepartmentName顯示爲下拉列表並將項目保存到項目表 – Keith 2011-05-19 00:09:17