Введенный бесконечный цикл, использующий jquery и MVC, не может найти причину - PullRequest
0 голосов
/ 25 августа 2011

Кажется, я как-то ввел бесконечный цикл.Я использую MVC2 и пытаюсь использовать jQuery post или ajax - но, похоже, это происходит либо для.

Идея состоит в том, что пользователи вводят идентификаторы в текстовое поле, а затем я ищу в db идентификаторыи затем отобразите объекты в сетке.

Вот код:

<script type="text/javascript">

    function bulk() {
        var data = $("#textfield").val();
        $.post("Search", { searchString: data });
    }
    </script>

Какие сообщения в методе контроллера:

[HttpPost]
public ActionResult Search(string searchString)
{
...
return View(viewModel);
}

Проблема в том, (с использованием лиajax или post) Я получаю переполнение стека после ввода идентификаторов в текстовое поле и нажатия кнопки поиска.Вероятно, это вызвано бесконечным циклом, но я не могу понять, почему это происходит.Что происходит, после этой строки: $.post("Search", { searchString: data });

Я нажимаю метод действия: public ActionResult Search(string searchString) затем все идет как обычно, поиск в БД, добавление для просмотра модели, затем после return View(viewModel); Я просто иду прямо назадк public ActionResult Search(string searchString) снова и снова.

Я совершенно не понимаю, почему это происходит.Любые идеи, что может происходить?

edit : bulk вызывается с помощью нажатия кнопки <input type="submit" onclick="bulk()" value="Search" />

@ Даниэль, я получаю StackOverflowException было обработано

Произошло необработанное исключение типа 'System.StackOverflowException' в mscorlib.dll. Если я щелкну Просмотр сведений - невозможно оценить выражение, поскольку текущий поток находится в состоянии переполнения стека.

Это происходит в Entity Frameworkкод

public Entities() : base("name=Entities", "Entities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}

1 Ответ

1 голос
/ 25 августа 2011

На ваш взгляд, вы случайно вызываете помощника @Html.Action()?(в отличие от @Html.ActionLink())

Вы также можете просто нажать F5, чтобы отладить приложение, дать ему взорваться и осмотреть стек вызовов, чтобы найти код, вызывающий бесконечный взгляд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...