如何使用EF將MVC 4中的父記錄添加到父記錄中?MVC 4向現有父項添加子記錄
我有一個網格顯示新聞。我需要添加那些兒童記錄的更新。一個數據庫表有新聞,另一個有更新。它們通過每個表中的NewsID鏈接。
NEWS模型
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int NewsId { get; set; }
public string Body { get; set; }
//other fields
最新通報MODEL
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int NewsUpdateId { get; set; }
public int NewsId { get; set; }
public string Body { get; set; }
//other fields
新聞索引視圖(僅適用於部分貼在這裏,它是顯示這些詳細信息行的網格)
@foreach (var item in Model) {
<tr>
<td>@Html.ActionLink(item.Headline, "Details", new { id=item.NewsId })</td>
<td>@Html.Raw(item.Body.Remove(300))...</td>
//other fields
<td>@Html.ActionLink("Edit", "Edit", new { id=item.NewsId })</td>
//WOULD LIKE ANOTHER LINK GOING TO "UPDATE" SCREEN TO ADD CHILD UPDATES, PASSING IN THE PARENT ID
</tr>
}
控制器(現在)
public ActionResult Update()
{
return View();
}
但當然,當我在該更新屏幕上保存時,沒有NewsID保存到更新並且失敗。我如何將索引屏幕/網格中的NewsID傳遞到我的「創建更新」屏幕中,然後在該更新屏幕上進行檢索並將其添加到我的保存操作中?
UPDATE 由於沒有人知道如何做到這一點,所以我會在沒有運氣的情況下繼續做下去。
我試過使用NewsUpdate屏幕就像編輯你傳遞的id值。不同之處在於,對於編輯,您正在編輯該記錄。對於這個NewsUpdate,我添加了一個NewsUpdate,它是News的子記錄,所以我擁有現有的NewsID並需要將它傳遞給我的NewsUpdate屏幕,並最終用它來設置NewsUpdate.NewsID。
當我保存NewsUpdate屏幕,該模型是無效的,因爲它缺少的,所以我想這個設置是:
var NewsID = Request.Url.PathAndQuery.ToString(); //grab it from url News/Update/8
NewsID = NewsID.Replace("/News/Update/", ""); //results in NewsID = 8
NewsUpdate.NewsID = Convert.ToInt32(NewsID);
這工作,但該模型仍然是無效的權利在此之後。所以這不好。