2009-09-02 21 views
2

Lorsqu'une URL est 404 sur mon site, je souhaite afficher une page 404 personnalisée rendue avec ASP.NET-MVC. Cependant, je ne veux pas utiliser l'approche de routage générique car cela désactiverait les formulaires Web standard. Mon code ressemble actuellement à ceci:Comment afficher une page 404 personnalisée dans ASP.NET-MVC?

if (serverException is HttpException && ((HttpException)serverException).GetHttpCode() == 404) 
{ 
//Server.Transfer("~/Test.aspx"); //1 
//Server.Transfer("~/error/gf54tvmdfguj85fghf/404"); //2 
} 

ce code est à l'intérieur App_Error

// 1 fonctionne. Test.aspx est un formulaire en ligne norme

// 2 ne fonctionne pas comme il est une route asp.net-mvc

Comment faire fonctionner route MVC?

Répondre

-1

Vous pouvez utiliser l'événement d'erreur d'application ... comme ceci:

protected void Application_Error(object sender, EventArgs e) 
{ 
    //Check if it's a 404 error: 
    Exception exception = Server.GetLastError(); 
    HttpException httpException = exception as HttpException; 

    if(httpException.GetHttpCode() == 404) { 
     //Redirect to the error route 
    Response.Redirect(String.Format("~/Error/404/?message={0}", exception.Message)); 
    } 
} 
+1

Je ne veux pas rediriger en aucun cas. Je veux que le MVC-View soit montré. – usr

+0

Oui, cela afficherait un MVC-View tant que vous avez un ErrorController avec les méthodes appropriées. – Robban

+0

Il serait, mais en redirigeant ... – usr