2011-01-14 6 views
0

私のmvcアプリケーションのコントローラを取得して、ユーザーが編集ボタンをクリックするとデータモデルから特定のエンティティを編集しようとしていますしかし、私はそれを動作させるように見えることはできません。このエラーが発生する辞書に渡されるモデル項目は、 'System.Data.Objects.ObjectQuery`1タイプです

辞書に渡されるモデル項目の型は 'System.Data.Objects.ObjectQuery`1 [MvcApplication1.Models.New]'ですが、この辞書には 'MvcApplication1.Models'タイプのモデル項目が必要です。新しい'。

私は間違っています。それは強く型付けされたビューのためですか?ここ

は私のコントローラです:

public ActionResult Edit(int id) 
     { 
     var productToEdit = from s in _entities.NewSet  // return the story matching the clicked id 
          where s.storyId == id 
          select s; 
      return View(productToEdit); 
     } 

     // POST : Edit 
     [AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Edit(New productToEdit) 
     { 
      try 
      { 
       var originalNews = (from s in _entities.NewSet 
            where s.storyId == productToEdit.storyId 
            select s).FirstOrDefault(); 
       _entities.ApplyPropertyChanges(originalNews.EntityKey.EntitySetName, productToEdit); 
       _entities.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 

     } 

は、誰かが私にいくつかのポインタを与えることができますしてください。私はまだこれのすべてに新しいです。

答えて

5
次のようにパラメータのIntを使用して編集し、アクションを変更し

:魅力を働いた

public ActionResult Edit(int id) 
{ 
    var productToEdit = from s in _entities.NewSet  
         where s.storyId == id 
         select s; 
    return View(productToEdit.FirstOrDefault()); 
} 
+0

おかげCyber​​nateを、。あなたの伝説の仲間 – mkkk

+0

@mkkk - この答えの横のチェックボタンをクリックして、これを正解としてください。また、一意のフィールドでクエリを実行する場合、これは 'SingleOrDefault()'でなければなりません。 – RPM1984

関連する問題