La mia funzionalità di ricerca sembra continuare in un ciclo infinito, ogni volta che il debug esegue l'azione al di sotto del POST actionresult viene generato.Stack insufficiente per continuare a eseguire il programma in modo sicuro. ASP.NET MVC 4
Nel mio Masterpage.cshtml ho seguenti azioni:
<li>@Html.Action("Search", "Search")</li>
Questa è la parte che ottiene l'errore di seguire:
pila insufficiente per continuare l'esecuzione del programma in modo sicuro. Questo può fare in modo che abbia troppe funzioni nello stack di chiamate o nella funzione sullo stack utilizzando troppo spazio di stack.
Nel mio SearchController ho una GET e POST ActionResult metodi:
[HttpGet]
public ActionResult Search()
{
return PartialView("SearchFormPartial");
}
Questo restituisce una visione parziale con i seguenti contenuti:
@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>
}
La sua fondamentalmente un modulo con la casella di testo e invia pulsante.
Questa è l'ActionResult HTTP Post:
[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");
}
Si restituisce una vista con un ViewModel che contiene gli elementi che soddisfano le condizioni.
Quando eseguo il debug, tutto funziona perfettamente ma tutto sembra essere ripetuto all'infinito.
La vista per la searchResult assomiglia a questo:
@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
}
}
che cosa sta andando exacly sbagliato qui che causano questo ciclo infinito? e come posso ripararlo?
Nella traccia dello stack ho trovato queste eccezioni
[HttpException (0x80004005): Error executing child request for handler
'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'.]
questa eccezione sembra sempre ripetuto
no, ma quando l'iterazione è terminata, passa a masterpage.cshtml e l'Html.Action ("Cerca", "Cerca" ") è lì. – Obsivus
Hai ricevuto l'errore quando pubblichi un'azione di ricerca? –
Ottengo l'errore quando smetto di eseguire l'app webb .. altrimenti è solo un ciclo infinito che significa quando digito un testo e clic su invia il suo solo caricamento – Obsivus