Unzureichende stack zum fortsetzen der Ausführung des Programms sicher. ASP.NET MVC 4

Meine Suchfunktion scheint weiterhin in einer Endlosschleife, immer wenn meine debug trifft die Aktion unter dem BEITRAG actionresult gefeuert wird.

In meiner Masterpage.cshtml habe ich folgende Aktion:

 <li>@Html.Action("Search", "Search")</li>

Dies ist der Teil, wird der Fehler mit der folgenden:

Nicht genügend stack-zum fortsetzen der Ausführung des Programms sicher. Dies kann
passiert, dass man zu viele Funktionen auf dem Aufruf-stack oder-Funktion auf
der Stapel mit zu viel stack-Speicher.

In meinem SearchController ich habe eine get-und post-actionresult Methoden:

[HttpGet]
        public ActionResult Search()
        {
            return PartialView("SearchFormPartial");
        }

Diesem kehrt man eine Teilansicht, die folgenden Inhalt haben:

@using (Ajax.BeginForm("Search", "Search", FormMethod.Post,
        new AjaxOptions
        {
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "POST"

         }))
{
<div>
    @Html.TextBox("query", "", new { @class = "search-query", @placeholder="Search news...", @spellcheck="false"})
    <input type="submit" value="Search" />
</div>      
}

Seine im Grunde eine form mit textbox und submit-button.

Dies ist die http-post-actionresult:

[HttpPost]

    public ActionResult Search(string query)
    {
        if (query != null)
        {
            try
            {

                var searchlist = rep.Search(query);

                var model = new ItemViewModel()
                {
                    NewsList = new List<NewsViewModel>()
                };

                foreach (var NewsItems in searchlist)
                {
                    FillProductToModel(model, NewsItems);
                }


                return View("Searchresults", model);
            }
            catch (Exception e)
            {
                //handle exception
            }
        }
        return View("Error");


    }

Gibt es eine view mit dem viewmodel, dass die Elemente enthält, die aufeinander abgestimmt die Abfrage.

Wenn ich Debuggen, es funktioniert alles perfekt, es scheint aber alles wiederholt sich unendlich.

Den Blick für die Searchresult sieht wie folgt aus:

@model Namespace.ViewModels.ItemViewModel
@if (Model.NewsList.Count == 0)
{
    <h3 class="text-error">No items matched your search query!</h3>
}
else
{
    foreach (var result in Model.NewsList)
    {
        //display search results
    }
}

Was genau läuft hier falsch, dass die Ursache dieser Endlosschleife? und wie kann ich es beheben?

In dem stack-trace fand ich diese Ausnahmen

[HttpException (0x80004005): Error executing child request for handler

'- System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.]

diese Ausnahme scheint immer wiederholt

  • NÖ, aber wenn die iteration erfolgt, es springt auf der masterpage.cshtml und Html.Aktion("Suche","Suche"") da ist.
  • Erhalten Sie den Fehler beim buchen auf der Suche nach action?
  • Ich bekomme die Fehlermeldung, wenn ich aufhören die webb app.. sonst nur seine unendliche Schleife, was bedeutet, dass, wenn ich geben Sie einen text ein und klicken Sie auf "Absenden" its just be
  • Es sollte kein Problem sein, wenn Sie anrufen, die Suchen action mit GET-Anfrage, es gibt eine PartialViewResult. Sollten Sie die Fehlermeldung erhalten, wenn Sie eine POST-Anforderung.
  • Wenn ich debugg die post actionresults dies ist, was passiert: es gibt eine Ansicht und der geht durch alles, was sich in der Ansicht bewegt sich auf der masterpage.cshtml, wenn es Sie trifft Html.Aktion("Suche","Suche"") . Es geht direkt an die Post actionresult und so weiter wiederholen.
  • welche Routen haben Sie erklärt? nach der Lektüre Ihrer letzten Kommentar denke ich, dass etwas falsch sein könnte, passiert es
  • ill update mit Arbeitsplänen 1 Sek.
  • falsche denke, sorry, Ihre Routen sind in Ordnung

InformationsquelleAutor Obsivus | 2013-05-20
Schreibe einen Kommentar