Visualizzazione della pagina CSHTML di errori personalizzati in MVC5 su 404/500 / qualsiasi eccezione?

Mi sto strappando i capelli tutto questo giorno. Sto provando a visualizzare solo una pagina cshtml amichevole ogni volta che viene generata un’eccezione in modo che la mia UX sia coerente – Non voglio che i miei utenti sappiano che sono sullo .net stack dall’interfaccia utente, mai.

Sto provando navigando su localhost:2922/junkurl , – se l’URL non si risolve, non può essere trovato, o genera in altro modo un’eccezione, voglio visualizzare una pagina cshtml resa amichevole.

Cosa ho nel mio web.config:

   

Ciò provoca la pagina di errore gialla predefinita. Ma se faccio cadere una pagina error.html nella root e uso questo:

   

Funziona. L’unico problema è che non voglio dover ribuild tutto il mio layout / LoginPartial / ecc. Con straight html – Voglio renderlo usando il razor. Qual è l’approccio tipico intorno a questo? Ho fatto un sacco di ricerche su questo così scuse se ho perso la risposta, sono solo completamente in perdita.

Preferirei farlo dal codice se ansible, ma da quello che ho capito, il codice coprirà solo un certo livello di eccezioni … ad un certo punto sembra che debba essere gestito tramite la configurazione. Vorrei solo che fosse semplice config!

Prova con un ErrorController e la seguente configurazione nel tuo web.config

web.config

     

ErrorController

 public class ErrorController : Controller { public ActionResult Index() { return View("Error"); } public ActionResult NotFound() { Response.StatusCode = 200; return View("NotFound"); } public ActionResult InternalServer() { Response.StatusCode = 200; return View("InternalServer"); } }