基本上說,我有一個操作將表單保存到數據庫,然後將用戶重定向到列表。從這個列表中,用戶可以選擇一些操作。如何重定向到具有不存在ID的頁面?
其中一個操作是必不可少的,我希望用戶在創建對象後直接傳遞給這個直線,但是,由於第一個對象的ID尚不存在,我不知道如何傳遞ID通過。
例如目前 -
//Excerpt
db.form.Add(ViewModel);
db.SaveChanges();
return RedirectToAction("List");
然後我有一個正常的方式拉列表,並有一個鏈接,用戶可以點擊進入/stage2/(id)
。
我會非常喜歡的是我的代碼更改爲類似:
//Excerpt
db.form.Add(ViewModel);
var newentry = db.SaveChanges();
return RedirectToAction("Stage2", new {id = newentry));
我已經看到,以這種方式調用SaveChanges()
結果返回一個int,但是,我已經試過,它不似乎拉對象的ID,我已經嘗試了一些其他的東西,但我不確定使用的語法。
我所能想到的只是分離對象,然後再次選擇並返回,但是,還有更「光滑的」或直接的方式嗎?
編輯 - 我想我這個工作了...但是,我需要等待7小時,直到我可以張貼一個答案。
除非我誤會 - 在這種情況下,請有人告訴我!...看起來Entity Framework會自動更新您傳遞的對象。
當我通過一個form
對象時,在調用SaveChanges
時,它自動設置表單對象的ID。
因此,所有我需要的是:
//Excerpt
db.form.Add(ViewModel);
return RedirectToAction("Stage2", new {id = ViewModel.id));
你是正確的,EF將填充ID一旦對象已被保存(通過'的SaveChanges()') - 儘管你在這個缺少你的「摘錄「代碼。 –