Как провалить Ajax.BeginForm в ASP.Net MVC? - PullRequest
1 голос
/ 31 марта 2010

У меня есть Ajax.BeginForm с обработчиками JavaScript OnSuccess и OnFailure.

Как происходит сбой на моем контроллере, так что вызывается OnFailure?

Да, раньше я вызывал throw new HttpException (404), и он работал.

Но теперь я установил собственный обработчик ошибок, который вызывает Server.ClearError (). В связи с этим Ajax.BeginForm считает, что ошибки не произошло.

Я использую обработчик ошибок, указанный здесь: Пользовательская обработка ошибок ASP.NET MVC Application_Error Global.asax?

Ответы [ 2 ]

1 голос
/ 04 апреля 2010

Вы должны просто быть в состоянии выбросить исключение. HttpException (404) не найден, что, я думаю, не считается исключением для OnFaiulre. Все, что приводит к HTTP 500, должно интерпретироваться сценарием как ошибка.

0 голосов
/ 23 февраля 2012

Способ обработки: установить Response.StatusCode = 500 и добавить заголовок к моему объекту ответа Response.AppendHeader («MyResponseHeader», «Мое сообщение»);

В моем обработчике .js OnFailure ...

function OnFailure(ajaxContext) {
    alert(ajaxContext.status); // 500
    alert(ajaxContext.getResponseHeader("MyResponseHeader"));  // "My Message"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...