2011-01-14 8 views
0

Ich versuche, den Controller in meiner MVC-Anwendung zum Bearbeiten einer bestimmten Entität aus einem Datenmodell zu verwenden, sobald der Benutzer auf die Schaltfläche Bearbeiten klickt aber ich kann es scheinbar nicht funktionieren lassen. Ich erhalte diesen FehlerDas an das Wörterbuch übergebene Modellelement ist vom Typ 'System.Data.Objects.ObjectQuery`1

Das in das Wörterbuch übergebene Modellelement ist vom Typ 'System.Data.Objects.ObjectQuery`1 [MvcApplication1.Models.New]', aber dieses Wörterbuch benötigt ein Modellelement vom Typ 'MvcApplication1.Models' .Neu'.

was mache ich falsch. Liegt es an der stark typisierten Sicht?

hier ist mein Controller:

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(); 
      } 

     } 

kann jemand geben Sie mir ein paar Hinweise bitte. Ich bin immer noch neu in all dem.

Antwort

5

auf Ihre Aktion Bearbeiten mit Int Parameter wie folgt ändern:

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

Dank Cybernate, die einen Zauber gearbeitet hat. Du bist ein legendärer Freund – mkkk

+0

@mkkk - Bitte akzeptiere dies als die richtige Antwort, indem du auf das Häkchen neben dieser Antwort klickst. Wenn Sie nach einem eindeutigen Feld suchen, sollte dies auch 'SingleOrDefault()' sein. – RPM1984

Verwandte Themen