Se un normale errore di caricamento della pagina è possibile segnalare i dettagli delle eccezioni all'utente tramite la vista Error
e il modello .Gli errori di segnalazione da Ajax hanno richiamato i metodi PartialView in MVC
Se un ajax
chiamata in attesa di un Json
errori di risultato, io in grado di gestire in modo esplicito l'errore e passare informazioni al cliente:
public JsonResult Whatever()
{
try
{
DoSomething();
return Json(new { status = "OK" });
}
catch (Exception e)
{
return Json(new { status = "Error", message = e.Message });
}
}
Quindi, il mio problema, non riesco a vedere alcun modo di riferire dettagli dell'errore da una chiamata Ajax a un'azione che restituisce una vista parziale.
Questo segnalerà solo un codice di errore Http (ad esempio Internal Server Error) che non è utile per il client. C'è qualche trucco intelligente per passare un risultato di PartialView (html) con successo o un messaggio di errore?
Valutare esplicitamente il codice HTML dallo ViewResult
e restituirlo come parte di un oggetto Json
insieme a uno stato sembra troppo maleodorante. C'è un modello stabilito per gestire questo scenario?
Darin la vostra conoscenza di MVC mi sbalordisce ancora una volta. Non ho compreso completamente un paio di punti qui, ma ho capito che avrei potuto ottenere qualcosa di simile un po 'più semplicemente con un filtro ajax registrato nei filtri globali. Sembra funzionare bene. Grazie. – fearofawhackplanet
Solo una nota, se stai usando il codice sopra per intrappolare 404 e mostrare una pagina personalizzata probabilmente vuoi aggiungere un Response.TrySkipIisCustomErrors = true (.net 3.5 in poi credo soltanto) –
Funziona come un incantesimo, fantastico – Dilip