2012-11-06 22 views
5

Ho posto questo in web.config <system.webServer>MVC4 Pagina personalizzata 404?

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" subStatusCode="-1" path="/cv/" responseMode="ExecuteURL" /> 
</httpErrors> 

Il percorso che viene utilizzato temporaneamente qui [MyApplication]/cv/restituisce una pagina.

Ma se vado a [mia applicazione]/[tutto ciò che non esiste] per ottenere una risposta 404, non accade nulla.

Attualmente sta lavorando al mio vecchio sito Web, ma non riesco a farlo funzionare su un sito MVC4. Come posso fare questo lavoro? (Non voglio usare la "Redirect/File" metodi)

risposta

10

Questo è quello che ho in una corrente di progetto MVC 4:

<customErrors mode="On" defaultRedirect="~/Error/General"> 
    <error statusCode="404" redirect="~/Error/Http404" /> 
</customErrors> 

Ho un regolatore di errori, e viste per "Generale "e" Http404 "(metodi di azione).

Funziona come un fascino.

+1

Ho provato questo numero di volte, ma continua a visualizzare la pagina di errore asp predefinita – Sinaesthetic

+0

Hai anche creato un controller di errore e le viste? http://stackoverflow.com/questions/13905164/how-to-make-custom-error-pages-work-in-asp-net-mvc-4 –

+3

L'ho fatto. Tuttavia, ho trovato il mio problema. In realtà stavo restituendo un HttpStatusCodeResult come normalmente farebbe il framework. Apparentemente, questo non viene rilevato come un errore, quindi le pagine di errore personalizzate non vengono mai chiamate. Ho cambiato il mio codice per lanciare una HttpException e ora funziona. Non so come mi sento al riguardo – Sinaesthetic

3

Parte del problema potrebbe anche derivare dal fatto che il tag <customErrors> non è un figlio valido di <system.webServer>. Prova a inserirlo in <system.web>.

Problemi correlati