是否有人可以帮助我从IHttpresult
中获取此结果中的自定义文本return Content(HttpStatusCode.BadRequest, "Any object");
并在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);
}
})
当系统检测到已复制的产品时,它无法获取自定义文本(Producto repetido)
我希望有人可以帮助我,谢谢。 最好的问候
答案 0 :(得分:0)
在服务器端执行此操作:
Response.StatusCode = (int)HttpStatusCode.BadRequest;
var errors = new List<string>();
errors.Add("Error 1");
//...more errors if any
return Json(errors);
在客户端:
.ajax(
{ //code...
error: function(xhr, textStatus, exceptionThrown) {
var errorData = $.parseJSON(xhr.responseText);
// Do whatever you need to
},
答案 1 :(得分:0)
$.ajax({
url: "/API/Producto/",
method: "POST",
data: EProducto,
dataType: "json", // return type of data from server - change it to text
type: "POST",
success: function () {
toastr.success("Correcto");
},
error: function (jqXHR, textStatus, errorThrown) {
toastr.error(jqXHR.responseText);
}
})
弃用通知:从jQuery 3.0开始,jqXHR.success(),jqXHR.error()和jqXHR.complete()回调被删除。您可以使用jqXHR.done(),jqXHR.fail()和jqXHR.always()代替。
有关详细信息,请访问jquery.ajax