2017-12-19 4 views
1

Ich habe derzeit ein Problem mit meiner RedirectToAction Weiterleitung an die Dispose() Methode, die in einem generierten Controller enthalten ist. Ich bin mir nicht sicher, warum es zu dieser Methode statt zu der angegebenen geht. Was ich versuche, ist einen Eintrag zu einem meiner Modelle hinzufügen (OwnGame, was bei erfolgreich ist), dann möchte ich zu einem Aktionsergebnis umleiten, die diese Einträge aus einem früheren Modell/Tabelle (Cart) löscht, sobald sie wurde zu der von mir erwähnten Modell/DB-Tabelle hinzugefügt. Unten ist das erste Aktionsergebnis, das dann Umleitungen hinzufügt.RedirectToAction leitet an ein anderes ActionResult um als angegeben

Und wenn es relevant ist, habe ich die Methode enthalten, die ich umleiten wollte, aber es scheitert.

public ActionResult EmptyCart(string userEmail) 
{ 
    var cartItems = db.Carts.Where(o => o.Email.Contains(userEmail)); 
    foreach (Cart singleItem in cartItems) 
    { 
     Cart cartSingleItem = db.Carts.Find(singleItem.CartID); 
     db.Carts.Remove(cartSingleItem);    
    } 
    db.SaveChanges(); 
    return RedirectToAction("Index", new { userEmail = userEmail }); 
} 

Auch habe ich nichts zu der Dispose() Methode durchgeführt, es ist Standard. All dies soll im selben Controller stattfinden.

Antwort

2

Da die EmptyCart hat einen Parameter, und Sie müssen angeben, es Wert ist, wenn Sie es aus RedirectToAction nennen:

return RedirectToAction("EmptyCart", new { userEmail = "" }); 

Oder als Alternative, können Sie diese Parameter machen optional:

public ActionResult EmptyCart(string userEmail = "") 
{ 
    var cartItems = db.Carts.Where(o => o.Email.Contains(userEmail)); 
    .... 
    .... 
} 
Verwandte Themen