我正在用Entity Framework Database First構建一個簡單的ASP.NET MVC應用程序,它允許用戶編輯數據庫中的表。一個表有另一個表的外鍵。我希望用戶能夠更改外鍵值。如何從視圖中顯示「外部」表中的哪一列?
我的問題:如何選擇哪一列從「洋」表將顯示在視圖中的用戶?我把這個觀點支撐起來,但它顯示的是錯誤的列。
外鍵位於DealerAuto表中,該表具有以下列:DealerAutoID,DealerID,DealerMakeName,DealerModelName。出於某種原因,DealerAutoID視圖中的下拉列表正在拉入DealerMakeName中。我想要它拉DealerModelName。
View.cshtml:
@model ModelYearChange.Models.DealerAutoTrim
[...]
<div class="form-group">
@Html.LabelFor(model => model.DealerAutoID, "DealerAutoID", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("DealerAutoID", String.Empty)
@Html.ValidationMessageFor(model => model.DealerAutoID)
</div>
</div>
DealerAutoTrimController.cs:
public ActionResult Create()
{
ViewBag.DealerAutoID = new SelectList(db.DealerAutoes, "DealerAutoID", "DealerMakeName");
ViewBag.DealerModelName = new SelectList(db.DealerAutoes, "DealerModelName", "DealerModelName");
return View();
}
// POST: /DealerAutoTrim/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "DealerAutoTrimID,DealerAutoID,DealerTrimName,DealerTrimMSRP,DealerTrimMPG_City,DealerTrimMPG_Highway,DealerTrimBulletPoints,Year")] DealerAutoTrim dealerautotrim)
{
if (ModelState.IsValid)
{
db.DealerAutoTrims.Add(dealerautotrim);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.DealerAutoID = new SelectList(db.DealerAutoes, "DealerAutoID", "DealerMakeName", dealerautotrim.DealerAutoID);
return View(dealerautotrim);
}
你想怎樣,這是可能實現一個抽象的概念或做你想做的代碼?我不覺得你真的提供了足夠的信息來正確回答這個問題。我不知道你的對象是什麼,它們是如何映射的或它們是如何相關的。我不知道這個視圖是什麼樣的,或者它將如何使用。 –
好主意,我會添加一些代碼。 :) – Derek