使用MVC4和EF5 codefirst。遇到一個問題,即通過引用具有外鍵的行創建新的數據記錄。清單創建的條目一切都看起來不錯:MVC,實體框架,未顯示創建新項目的外鍵數據
@foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.Location.name)
@Html.DisplayFor(modelItem => item.Action.name)
...
創建一個新的記錄參考無法顯示外國內容(姓名):
...
@Html.LabelFor(model => model.locationID)
@Html.DisplayFor(model => model.Location.name)
@Html.LabelFor(model => model.actionID)
@Html.DisplayFor(model => model.Action.name)
...
的外鍵正確填寫控制器(見至簡體例子)
public ActionResult Create()
{
Timerecord tm = new Timerecord();
tm.currentTime = DateTime.Now;
tm.locationID = 1;
tm.actionID = 5;
ViewData.Model = tm;
return View();
}
並且記錄在數據庫中正確創建。只是名稱不顯示在視圖上。在創建過程中,我是否必須獲取關聯的reocrd自己?
+1這就是我一直在做的,導航屬性工作良好後,你只需使用foreignkeyid插入實體到數據庫,但我真的很想知道是否有解決方法。 –
您可以顯示Timerecord類並查看創建嗎? –
@sormii,這就是您使用外鍵屬性定義導航和集合屬性時所獲得的結果。您可以保存實體,然後使用「Include」擴展方法熱切加載相關實體。 – danludwig