Как JSON определяет успех по ошибке? - PullRequest
3 голосов
/ 15 мая 2011

Я новичок в JSON и использую его с MVC3 ASP.NET, но может кто-нибудь пролить свет на то, как вернуть ошибку для результата JSON?

У меня следующий вызов из моего представления:

  $.ajax({
     type: "POST",
     dataType: "json",
     url: "EditJSON",
     data: { FilmID: InputFilmID, Title: InputTitle, Description: InputDescription},
     success: function (result) {
        alert(result.Message + " updating film " + result.Title);
        window.location = "../All";
     },
     error: function (error) {
        alert('error');
     }
  });

Контроллер обрабатывает запрос как успешный.Что бы я вернул за ошибку JSON, чтобы функция error: возвращалась при просмотре?

    [AcceptVerbs("POST")]
    public JsonResult EditJSON(BobsMoviesMVC2.Models.Film film)
    {
       filmRepository.Update(film);
       return Json(new {Message = "Success", Title = film.Title });

       // What would I return for an error here?
    }    

Спасибо!

Ответы [ 3 ]

10 голосов
/ 15 мая 2011

jQuery использует код ответа HTTP для определения успеха или неудачи.

Коды ответа HTTP> = 400 считаются ошибками.Коды ответов HTTP> = 200 и <400 считаются успешными. </p>

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

6 голосов
/ 09 декабря 2011

Подтверждено, что в .NET вы можете указать:

Response.StatusCode = (int)HttpStatusCode.InternalServerError,

или любой другой код состояния ошибки, который вы пожелаете, прямо перед оператором возврата JSON.(Спасибо, Мэрайя).

Проверьте параметр 'error' jjery ajax-вызова *1009*, чтобы узнать, что можно сделать с возникающей ошибкой на стороне клиента.

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

Заголовок с кодом состояния, отличным от 2xx или 3xx, возможно, с кодом ошибки 5xx или 4xx.

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