【问题标题】:How does JSON determine a success from an error?JSON 如何从错误中判断成功?
【发布时间】:2011-08-26 00:08:05
【问题描述】:

我是 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 错误传回什么,以便在视图中处理错误:函数?

    [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?
    }    

谢谢!

【问题讨论】:

    标签: json asp.net-mvc-3


    【解决方案1】:

    jQuery 使用 HTTP 响应代码来确定成功或失败。

    HTTP 响应代码 >= 400 被视为错误。 HTTP 响应代码 >= 200 和

    从您的服务器端代码返回适当的 HTTP 代码以获得您所追求的行为。

    【讨论】:

    • 所以,我只需要添加,Response.StatusCode = (int)HttpStatusCode.BadRequest;在返回我的 json 结果之前?
    • 对不起,我不知道 ASP.NET,所以我不能确定在那里做什么。不过,您的建议对我来说似乎是合理的。
    【解决方案2】:

    确认,在 .NET 中你可以放:

    Response.StatusCode = (int)HttpStatusCode.InternalServerError,

    或任何您希望的错误状态代码,就在您的 JSON 返回语句之前。 (谢谢玛丽亚)。

    查看jquery ajax call 的“错误”选项,看看您可以对客户端产生的错误执行什么操作。

    【讨论】:

      【解决方案3】:

      状态代码不是 2xx 或 3xx 的标头,可能是 5xx 或 4xx 错误代码。

      【讨论】:

      • 您好,请问您可以举个例子吗?
      • 我认为你会做 Response.Status = "401 Something Error"。
      猜你喜欢
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多