有没有办法在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);
}
});
但我无法在客户端显示自定义错误。
答案 0 :(得分:0)
如果您有更好的方法,我找到了解决方案,请告诉我。 服务器端
[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);
}
})