Las páginas de error de archivo personalizado no encontrado (404) pueden ayudar a crear una experiencia de usuario más gratificante para los visitantes del sitio. Los enlaces se vuelven obsoletos y no hay nada más frustrante para un usuario que haber encontrado un enlace a exactamente lo que están buscando y a encontrarse con el infame “archivo no encontrado ” pantalla.
Afortunadamente, ASP.NET MVC hace que sea relativamente fácil implementar algo más significativo para sus visitantes. Con una regla de enrutamiento de caracteres comodín, puede asegurarse de que todas las solicitudes completamente con formato incorrecto se transfieran a un controlador específico.
En el ejemplo anterior, cualquier solicitud que no coincida con ninguna de nuestras otras reglas de enrutamiento se reenviará a la acción Http404 en el controlador Error.
En este punto, hay algunas cosas que vale la pena señalar.
Por un lado, el enrutamiento debe ser la última ruta asignada. Esto es debido a la hora ASP.NET MVC prioriza las rutas. Esencialmente va en orden de las declaraciones en busca de un partido y se detiene el momento en que se encuentra uno. Puesto que nuestra ruta contiene solamente un comodín, si había sido enumerado antes de cualesquiera otras reglas de ruteo esas otras reglas nunca conseguirían ejecutadas.
Otra cosa que vale la pena señalar implica preocupaciones de enrutamiento similares. Tome por ejemplo nuestra ruta de error y la ruta predeterminada que cada aplicación de ASP.NET MVC comienza con.
Mientras que las rutas se definen en el orden correcto, todavía podría sorprenderse de lo que sucede cuando el usuario solicita la siguiente URL:
-
http://example.com/foo
Cuando el marco encuentra la segunda regla de ruteo:
Ve que http://example.com/foo fósforos. En la ignorancia completa de nuestra otra ruta el marco inmediatamente comienza a buscar un controlador llamado foo.
Así que para nuestra ruta de error para conseguir ejecutado la URL tiene que completamente mal formada, o en otras palabras, la dirección URL no puede coincidir con cualquiera de nuestras rutas definidas anteriormente. Las siguientes son direcciones URL que ejecutaría la ruta de error en nuestro ejemplo:
-
http://example.com/foo/a/b/c/d
-
http://example.com/something/somethingelse/hello/goodbye
Aunque limitado en su aplicación, esta técnica para manejar URLs mal formadas es útil. En nuestro controlador de ejemplo, tiene acceso a la dirección URL solicitada y podría analizarlo para proporcionar recomendaciones para ayudar a un visitante perdido a encontrar lo que está buscando. Dando este un paso más, es posible que desee leer mi artículo sobre el manejo de acciones de controlador desconocido en ASP.NET MVC.