ASP.Net MVC AJAX ссылка не работает - PullRequest
2 голосов
/ 01 июня 2009

У меня есть эта ссылка, чтобы реализовать вход в AJAX, на моей странице:

<%= Ajax.ActionLink("Log On", "LogOn", "Account", new AjaxOptions {
    UpdateTargetId = "lll",
    Confirm = "blah"}) %>

Рядом есть div с id lll. Когда я нажимаю на ссылку, я получаю подтверждение бла (просто добавлено в целях отладки, поведение без него - то же самое), но затем ничего не происходит. Ни один запрос никогда не достигает сервера (потому что у меня есть точка останова на метод действия LogOn). Это в Chrome и IE8. В FF3 он открывает окно входа в систему, но как страница не загружает его через AJAX.

Есть идеи, что может быть не так?

Ответы [ 3 ]

5 голосов
/ 01 июня 2009

Проблема заключалась в том, что ссылка действия ajax по умолчанию отправляет запрос POST, и он был направлен на другой метод LogOn (тот, который принимает POST), и именно поэтому я не нажимал на точку останова. необходимые данные POST не отправлялись. Добавление HttpMethod к ссылке действия исправило это:

<%= Ajax.ActionLink("Log On", "LogOn", "Account", new AjaxOptions {
    UpdateTargetId = "lll",
    Confirm = "blah",
    HttpMethod = "Get"}) %>
1 голос
/ 01 июня 2009

Похоже, что на странице есть какая-то ошибка javascript, из-за которой вставленный javascript обрабатывает запрос AJAX, чтобы он не срабатывал. Вы смотрели на это в FireBug при загрузке страницы, чтобы увидеть, все ли ваши Javascript загружаются правильно? Кроме того, ваши версии библиотек JavaScript Microsoft соответствуют версии MVC, которую вы используете? Я помню, по крайней мере, один раз в ходе версий, что мне приходилось вручную обновлять свои версии библиотек Microsoft javascript в моем проекте. Если ваш проект существует в нескольких версиях MVC, я бы посоветовал отследить новые библиотеки (создать новый проект и скопировать его в старый или открыть архив проекта в каталоге установки и извлечь их вручную) и установить их .

0 голосов
/ 01 июня 2009

Включили ли вы скрипты ajax-клиента в раздел head:

  • MicrosoftMvcAjax.js
  • MicrosoftAjax.js
...