2009-07-30 56 views
2

因此,我正在關注ScottGu的NerdDinner教程,並且在解決此錯誤時遇到了一些麻煩。我想實現CRUD,所以剛開始,在編輯數據,我開始使用此代碼:理解NerdDinner MVC爲什麼會返回錯誤的問題

 public ActionResult Edit(int id) 
    { 
     Dinner dinner = dinnerRepository.GetDinner(id); 
     return View(dinner); 
    } 

其中顯示編輯視圖正確,並給我的字段編輯我的數據。現在,當我繼續和我的編輯操作變成這樣:

​​

我將返回404錯誤。顯然無法找到編輯視圖。我很難理解爲什麼會發生這種情況。我甚至試圖複製確切的語法(我不喜歡這樣做),但沒有運氣。我錯過了那些明顯的東西嗎?

編輯:我馬上發生,因爲我加入這一行:

的[AcceptVerbs(HttpVerbs.Post)

也許這將有助於?

+0

404發生在GET還是POST? 第一種方法是用於GET,第二種用於POST。正如blowdart所說,我們不是在修改編輯方法,而是添加第二個。 – 2009-07-30 06:32:19

回答

4

您需要在控制器中同時使用這兩種方法。

第一種方法是針對GET請求,這些請求不是表單提交的結果。這些是你看到的,如果你去/編輯/ 1 /編輯/ 2等

ActionResult編輯()方法不會取代你的第一個Edit()方法,但是是一個額外的方法,發送形式

+0

工作。謝謝一堆。不敢相信我沒有在文檔中看到。 – BBetances 2009-07-30 06:33:18

0

的結果,你確實有編輯行動,你呢?之一應該是W/O型的的[AcceptVerbs]屬性和用於顯示的初始編輯視圖,其他動作只接受POST調用和用於打開從表單被張貼到模型中的任何值,並保存在數據存儲。

從你的措辭看來,它看起來像是你編輯舊的而不是添加第二個編輯動作(方法)。

+0

這正是我所做的。當他說超負荷行動時,我應該仔細閱讀教程。感謝大家的幫助。 – BBetances 2009-07-30 06:38:49

相關問題