Respuesta

12

Usted primero debe agregar una página URL personalizada de error en el web.config:

<customErrors mode="On" defaultRedirect="~/Error/404" /> 

y agregar un controlador para manejar las URLs no válidas:

public class ErrorController:Controller 
    { 
     [ActionName("404")] 
     public ActionResult Error404() 
     { 
      return View("Error"); 
     } 
    } 

y si se quiere redirigir al usuario a la página de inicio, entonces no necesita el controlador de error simplemente modifique la etiqueta de error personalizada:

<customErrors mode="On" defaultRedirect="~/Home/Index" /> 
+0

Esto parece correcto ... –

+0

Gracias marwan y Arnis. Funcionó – Prasad

+1

En realidad, lo necesitaré pronto. Me ayudé a mí mismo (me gusta esta pregunta). –

0

Creo que cada solicitud debe ser redirigida al controlador frontal, por lo tanto envuelva su código dentro de un bloque try/catch que interceptará la excepción, y tal vez pueda redirigir a la página principal en el bloque catch o simplemente generar un error 404 con un controlador de excepción.

¿Cuál es el idioma de su servidor?

+0

estoy usando MVC con C#. – Prasad

+0

Está etiquetado asp.net-mvc-routing –

+0

Lo siento por ser irrelevante ^^ –

1

¿Te refieres a esto?

// Show a 404 error page for anything else. 
    routes.MapRoute("Error", "{*url}", 
    new { controller = "Error", action = "404" } 
); 
+1

ya exactamente así, pero cuando usé ese código, no está redirigiendo a la página especificada. Aún mostrando "El recurso no se puede encontrar". He agregado lo siguiente en Global.asax.cs: routes.MapRoute ("Error", "{* url}", nuevo {controller = "Home", action = "Index"}); – Prasad