我的搜索功能似乎在无限循环中继续,每当我的调试命中POST actionresult下面的动作时就会被触发。堆栈不足以继续安全地执行程序。 ASP.NET MVC 4
在我Masterpage.cshtml我有以下作用:
<li>@Html.Action("Search", "Search")</li>
这是获取以下错误的部分:
不足栈继续安全地执行程序。这可能是 发生在调用堆栈上的功能太多或者功能太多,堆栈空间太多。
在我SearchController我有一个GET和POST的ActionResult方法:
[HttpGet]
public ActionResult Search()
{
return PartialView("SearchFormPartial");
}
这一个返回的部分观点,即有如下内容:
@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>
}
其basicly形式与文本框并提交按钮。
这是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");
}
它返回一个包含与查询匹配的项的视图模型视图。
当我调试它时,一切正常,但似乎无限重复了一切。
的信息搜索结果的看法是这样的:
@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
}
}
什么exacly去错在这里,造成这种无限循环?我该如何解决它?
在堆栈跟踪,我发现这些异常
[HttpException (0x80004005): Error executing child request for handler
'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'。]
这个例外似乎得到重复
nope但是当迭代完成时,它跳转到masterpage.cshtml并且Html.Action(“Search”,“Search”“)在那里。 – Obsivus
当您发布到搜索操作时,您是否收到错误消息? –
当我停止运行webb应用程序时,出现错误..其它只是无限循环,这意味着当我键入文本并单击提交它的刚才加载时 – Obsivus