Redirigir a la página 404 mediante programación usando asp.net MVC
Frecuentes
Visto 16,832 veces
12
He creado una aplicación MVC de Asp.net. Ahora requiere manejo 404.
Ha actualizado global.asax y muestra la página 404 según el código de estado. También se agregó la propiedad customErrors en web.config. Está funcionando bien.
Ahora me gustaría redirigir a 404 mediante programación cuando algo no coincida con nuestro requisito.
es decir,
if(!valid)
{
return RedirectToAction("Index", "Page404");
}
Funciona bien, pero hay 2 estados, uno es 301 y luego 404. Entonces, ¿cómo puedo evitar el 301? Solo necesito 404.
¿Cómo puedo conseguir esto?
3 Respuestas
45
Simplemente regrese de su acción:
return HttpNotFound();
contestado el 23 de mayo de 12 a las 05:05
3
En su web.config
, agregue:
<customErrors mode="On" >
<error statusCode="404" redirect="/404.shtml" />
</customErrors>
Esto redirigirá a la página 404.shtml cuando no se encuentre el recurso solicitado.
Nota: No es necesario redirigir mediante programación a los usuarios para tal situación.
EDIT: Literalmente sugiero:
if (Context.Response.StatusCode == 404) {
// handle this
}
contestado el 22 de mayo de 12 a las 14:05
2
Simplemente arroja un 404 en el código de estado:
Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound
contestado el 22 de mayo de 12 a las 14:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas asp.net-mvc http-status-code-404 or haz tu propia pregunta.
Esta es la respuesta correcta. En el caso de que consulte la base de datos mientras obtiene un resultado y encuentre un objeto con la ID especificada por el usuario que no existe, DEBE redirigir mediante programación al usuario a una página 404 (o una acción similar). - Dermot