Обратные вызовы на Ajax.BeginForm не работают правильно - PullRequest
1 голос
/ 06 мая 2011

почему у меня всегда так много проблем ...? учитывая, что я не решил эту проблему в моей другой статье , я решил просто закодировать javascript прямо в значения ... поэтому у меня есть:

OnSuccess="alert('ok')",
OnFailure="alert('failed')",

так что моя проблема в том, что представление работает нормально; запись вставляется в базу данных, и я получаю обратный вызов ... но я получаю неправильный обратный вызов! Я получаю сбой, хотя запись вставлена. heeeeelp!

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Вы должны быть в состоянии прочитать данные из ответа, чтобы выяснить, почему это считается ошибкой:

OnFailure="handleError",

...

function handleError(ajaxContext) {
    var response = ajaxContext.get_response();
    var statusCode = response.get_statusCode();
    alert("Sorry, the request failed with status code " + statusCode);
}

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

0 голосов
/ 06 мая 2011

хорошо, я понял несколько вещей:

  1. OnFailure = "handleError" - правильный способ сделать это (см. Другую статью, которую я упомянул для разрешения)
  2. У ajaxContext не было метода get_response (), потому что вместо этого я подключал функцию к событию OnComplete (мой плохой)! после подключения к OnSuccess, я получаю метод Json, возвращающий значение из моего контроллера, изначально
  3. Я получал обработчик OnSuccess, вызываемый при сбое записи базы данных. это потому, что мой метод контроллера был try {} catch {} ing и поэтому никогда не завершался ошибкой! я вялый: (* ​​1008 *
...