решено, см. Ниже
в моем контроллере ...
[HttpPost]
public ActionResult Reject(RevisionRejectModel model)
{
throw new HttpException(500, "Internal Error");
...
}
в моем представлении ...
@using (Ajax.BeginForm("Reject", "Revision", new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "RejectOnBegin",
OnFailure = "RejectOnFailure",
OnSuccess = "RejectOnSuccess",
OnComplete = "RejectOnComplete"
}))
...
Inмой .js ...
function RejectOnFailure(ajaxContext) {
alert("Never hit!");
}
решено
Проблема заключалась в том, что в web.config были включены ошибки пользователя ... Работает даже при клиентских ошибках, включенных в web.config ...
Чтобы справиться с этим, нужно установить Response.StatusCode = 500 и добавить заголовок кобъект моего ответа Response.AppendHeader ("MyResponseHeader", "Мое сообщение");
В моем обработчике .js OnFailure ...
function OnFailure(ajaxContext) {
alert(ajaxContext.status); // 500
alert(ajaxContext.getResponseHeader("MyResponseHeader")); // "My Message"
}