2009-07-30 32 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

相关问题