Meine Suchfunktion scheint in einer Endlosschleife weiterzugehen, jedesmal, wenn mein Debug die Aktion unter dem POST-Actionresult trifft, wird gefeuert.
In meiner Masterpage.cshtml habe ich folgende Aktion:
%Vor%Dies ist der Teil, der den folgenden Fehler enthält:
Nicht genügend Stapel, um das Programm sicher auszuführen. Das kann passieren, wenn Sie zu viele Funktionen auf dem Call-Stack haben oder auf Funktion sind der Stapel verwendet zu viel Stapelspeicherplatz.
In meinem SearchController habe ich eine Methode get und post actionresult:
%Vor%Dieser gibt eine Teilansicht mit folgendem Inhalt zurück:
%Vor%Es ist im Grunde ein Formular mit der Textbox und Absenden-Taste.
Dies ist das http post actionresult:
%Vor%Sie gibt eine Ansicht mit einem Ansichtsmodell zurück, das die Elemente enthält, die der Abfrage entsprechen.
Wenn ich es debugge, funktioniert alles perfekt, aber alles scheint unendlich oft wiederholt zu werden.
Die Ansicht für das Suchergebnis sieht folgendermaßen aus:
%Vor%Was geht hier genau schief, was diese Endlosschleife verursacht? und wie kann ich es reparieren?
In der Stapelüberwachung habe ich diese Ausnahmen gefunden
%Vor%'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'.]
Diese Ausnahme scheint wiederholt zu werden
Html.Action
in der Masterseite ruft die Search-Methode mit einer POST-Anforderung auf, sodass das Framework nicht die Aktion aufruft, die die Teilansicht zurückgibt, sondern die andere, die ein ViewResult mit der Masterseite zurückgibt. Das Gleiche wird wieder passieren und Sie werden rekursive Aufrufe machen.
Die einfachste Lösung wäre, die Suchaktion, die auf eine POST-Anfrage reagiert, umzubenennen. Stellen Sie außerdem sicher, dass Ihr Formular für diese Aktion einen Post-Vorgang durchführt, aber behalten Sie den gleichen Html.Action
-Aufruf.
Es scheint, als würde Framework immer noch versuchen, die Aktion zu finden, die auf eine POST-Anfrage antworten kann. Das Entfernen des HttpGet
-Attributs aus der Suchaktion löst dieses Problem.
Tags und Links asp.net-mvc c# asp.net asp.net-mvc-4 actionresult