2011-01-14 5 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
다음으로 지능 매개 변수와 편집 작업을 변경

: 매력을 일했다

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

감사 Cybernate을. 당신의 전설의 친구 – mkkk

+0

@ mkkk -이 답 옆에있는 체크 버튼을 클릭하여 정답으로 받아주십시오. 또한, 고유 한 필드에 대한 질의를한다면, 이것은'SingleOrDefault()'가되어야합니다. – RPM1984

관련 문제