Si un error de carga de página normal puedo informar los detalles de la excepción al usuario a través de la vista Error
y el modelo HandleErrorInfo
.Informes de errores de Ajax invocaron métodos PartialView en MVC
Si una llamada esperando un ajax
Json
errores de resultado, que puede manejar de manera explícita el error y pasar datos al cliente:
public JsonResult Whatever()
{
try
{
DoSomething();
return Json(new { status = "OK" });
}
catch (Exception e)
{
return Json(new { status = "Error", message = e.Message });
}
}
Por lo tanto, mi problema, no puedo ver ninguna manera de informar sobre los detalles del error desde una llamada Ajax a una acción que devuelve una vista parcial.
$.ajax({
url: 'whatever/trevor',
error: function (jqXHR, status, error) {
alert('An error occured: ' + error);
},
success: function (html) {
$container.html(html);
}
});
Esto sólo informar de un código de error HTTP (por ejemplo, error interno del servidor) que no es útil para el cliente. ¿Hay algún truco inteligente para pasar un resultado exitoso de PartialView (html) o?
Evaluando explícitamente el html desde el ViewResult
y devolviéndolo como parte de un objeto Json
junto con un estado que parece demasiado apestoso. ¿Existe un patrón establecido para manejar este escenario?
Darin su conocimiento de MVC me sorprende de nuevo. No entendí completamente un par de puntos aquí, pero descubrí que podía lograr algo similar un poco más simple con un filtro ajax registrado en filtros globales. Parece estar funcionando bien. Gracias. – fearofawhackplanet
Solo una nota, si estás usando el código anterior para atrapar 404's y mostrar una página personalizada, probablemente quieras agregar un Response.TrySkipIisCustomErrors = true (.net 3.5 en adelante solo creo) –
Funciona como un encanto, aweseome – Dilip