¿Puedo devolver un error personalizado de JsonResult al método de error jQuery ajax?
¿Cómo puedo pasar información de error personalizada de un ASP.NET MVC3JsonResult
método para elerror
(osuccess
ocomplete
, si es necesario) función dejQuery.ajax()
? Idealmente, me gustaría poder:
Aquí hay una versión básica de mi código:
Controller JsonResult methodpublic JsonResult DoStuff(string argString)
{
string errorInfo = "";
try
{
DoOtherStuff(argString);
}
catch(Exception e)
{
errorInfo = "Failed to call DoOtherStuff()";
//Edit HTTP Response here to include 'errorInfo' ?
throw e;
}
return Json(true);
}
JavaScript$.ajax({
type: "POST",
url: "../MyController/DoStuff",
data: {argString: "arg string"},
dataType: "json",
traditional: true,
success: function(data, statusCode, xhr){
if (data === true)
//Success handling
else
//Error handling here? But error still needs to be thrown on server...
},
error: function(xhr, errorType, exception) {
//Here 'exception' is 'Internal Server Error'
//Haven't had luck editing the Response on the server to pass something here
}
});
Cosas que he probado (eso no funcionó):
Información de error de retorno decatch
bloque Esto funciona, pero no se puede lanzar la excepciónEdición de respuesta HTTP encatch
bloque Luego inspeccionadoxhr
en el controlador de errores jQueryxhr.getResponseHeader()
, etc.contenía la página de error predeterminada de ASP.NET, pero ninguna de mi información Creo que esto puede ser posible, ¿pero lo hice mal?