-1

こんにちは、MVC 3 アプリケーションを実行しています。私はエンティティフレームワークデータベースアプローチの最初の方法を使用しています。したがって、すべてのコードは自動的に生成されます。しかし、問題は、「編集」、「詳細」、および「削除」リンクをクリックすると、このエラーが発生することです。

The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Edit(Int32)' in 'Fin_trial_06.Controllers.AuthorController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters.

私のコントローラーコードは次のとおりです。

 public ActionResult Details(int? id)
    {
        Author authors = _entities.Authors.Single(n => n.Author_ID == id);
        return View(authors);
    }

public ActionResult Edit(int id)
    {
        return View(_entities.Authors.Find(id));
    }


    // POST: /Author/Edit/

    [AcceptVerbs(HttpVerbs.Post)]
      public ActionResult Edit(int id, Author aut)
    {
        if (id == null)
            return View("AuthorNotFound"); 
        try
        {
            _entities.Entry(aut).State = EntityState.Modified;
            _entities.SaveChanges();

            TempData["Message"] = "You have successfully Editied Author";
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }


 public ActionResult Delete(int id)
    {
        return View(_entities.Authors.Find(id));
    }


    // POST: /Author/Delete/5

    [HttpPost]
    public ActionResult Delete(int id, Author aut)
    {
        try
        {

            _entities.Entry(aut).State = EntityState.Deleted;
            _entities.SaveChanges();
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

助けてください ?

4

2 に答える 2

0

そのメソッドにブレークポイントを配置して、id が編集関数に渡されているかどうかを確認します。そうでない場合は、ビューが間違っており、編集するアイテムの ID を渡していません。ビューコードを投稿すると、どこで失敗したかがわかります。

于 2012-04-05T13:07:38.267 に答える
0

まあ、メッセージはかなり明確に見えます

 [AcceptVerbs(HttpVerbs.Post)]
      public ActionResult Edit(int id, Author aut)
    {
        if (id == null)

id == null の場合、アクションを入力できません。

小さな結果 :

if (id == null) 

役に立たない

解決策:idが

int ?

または、編集ビューに ID の非表示フィールドを配置することを忘れないでください

于 2012-04-05T13:04:10.977 に答える