2009-07-30 41 views
2

私はScottGuのNerdDinnerチュートリアルに従っています。このエラーを回避するためにいくつかの問題を抱えています。NerdDinner MVCがエラーを返す理由を理解している

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

適切に編集ビューを表示し、自分のデータを編集するために私のフィールドを与える:私は、データを編集しながら、最初に、私はこのコードを開始して、CRUDを実装しようとしています。さて、私が続けて、私の編集アクションはこれに変わります:

​​

私は404エラーを返します。どうやらEditビューが見つからないのです。なぜこれが起こっているのかを理解するのは非常に苦労しています。私は(私はしたくない)正確な構文をコピーしようとしましたが、運はありません。あの明白なものを紛失していますか?

EDITは:

[AcceptVerbsは(HttpVerbs.Post)]

が多分に役立ちます。私は、この行を追加するとすぐにどうなりますか?

+0

404はGETまたはPOSTで起こっていますか? 最初の方法はGET、2番目の方法はPOSTです。 blowdartによれば、私たちは編集メソッドを変更するのではなく、追加メソッドを追加します。 –

答えて

4

コントローラには両方の方法が必要です。

最初の方法は、フォームの提出の結果ではないリクエストで、GETリクエストです。

ActionResult Edit()メソッドは、最初のEdit()メソッドを置き換えるものではありませんが、POSTリクエストに応答する追加のメソッドですフォームを送信した結果

+0

が働いた。本当にありがとう。私はドキュメンテーションでそれを理解していないとは信じられません。 – BBetances

0

実際に2つのアクションを編集していますか? 1つは[AcceptVerbs]属性なしで、最初の編集ビューを表示するために使用され、他のアクションはPOST呼び出しのみを受け取り、フォームから投稿された値をモデルに変換してデータストアに保存します。

言い換えれば、2番目の編集アクション(メソッド)を追加する代わりに、古いものを編集したように見えます。

+0

それはまさに私がやったことです。私は、アクションを過負荷にすると言ったときにチュートリアルをもう少し近づけておくべきでした。助けをいただき、ありがとうございました。 – BBetances

関連する問題