【问题标题】:ajax response from return content with IHttpActionResult for non-OK response来自带有 IHttpActionResult 的返回内容的 ajax 响应,用于非 OK 响应
【发布时间】:2017-11-02 01:33:51
【问题描述】:

有没有办法在 ajax 错误中显示自定义消息?我在服务器端有这个

[HttpPost]
public IHttpActionResult CrearProducto(EProducto Producto)
{
    if (objBLProducto.ObtenerProductoRepetido(Producto, ConnectionStringStore).Count > 0)
    {
        return Content(HttpStatusCode.BadRequest, "Producto repetido"); 
    }
    if (objBLProducto.InsertarProducto(Producto, ConnectionStringStore))
    {
        return Ok(Producto);
    }
    else
    {
        return InternalServerError();
    }
}

在客户端

$.ajax({
    url: "/API/Producto/",
        method: "POST",
        data: EProducto,
        dataType: "json",
        type: "POST",
        success: function () {
            toastr.success("Correcto");
        },
        error: function (jqXHR, textStatus, errorThrown) {
            toastr.error(jqXHR.responseText);
        }
});

但我无法在客户端显示自定义错误。

【问题讨论】:

    标签: c# asp.net-web-api asp.net-ajax httpresponse


    【解决方案1】:

    如果您有更好的方法,我找到了解决方案,请告诉我。 服务器端

    [HttpPost]
    public IHttpActionResult CrearProducto(EProducto Producto)
    {
        try
        {
            IHttpActionResult response;
            HttpResponseMessage responseMsg = new HttpResponseMessage(HttpStatusCode.RedirectMethod);
            if (ConnectionStringStore == string.Empty)
            {
                var request = HttpContext.Current.Items["MS_HttpRequestMessage"] as HttpRequestMessage;
                var httpContext = (HttpContextWrapper)request.Properties["MS_HttpContext"];
                ConnectionStringStore = httpContext.Session[EnumSession.Variable.KeyConfig.ToString()].ToString();
            }
            if (objBLProducto.ObtenerProductoRepetido(Producto, ConnectionStringStore).Count > 0) {
                responseMsg.Content = new StringContent("Elemento duplicado");
                response = ResponseMessage(responseMsg);
                return response;
            }
            if (objBLProducto.InsertarProducto(Producto, ConnectionStringStore))
            {
                return Ok(Producto);
            }
            else
            {
                return InternalServerError();
            }
        }
        catch (Exception Ex)
        {
            HelperLog.PutStackTrace(Ex);
            return InternalServerError();
        }
    }
    

    客户端

                $.ajax({
                    url: "/API/Producto/",
                    method: "POST",
                    data: EProducto,
                    dataType: "json",
                    type: "POST",
                    success: function () {
                        toastr.success("Correcto");
                    },
                    error: function (jqXHR, textStatus, customErrorMessage) {
                        toastr.error(jqXHR.responseText);
                    }
                })
    

    【讨论】:

      猜你喜欢
      • 2015-04-19
      • 2017-11-01
      • 2011-10-27
      • 2018-03-17
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      相关资源
      最近更新 更多