2012-05-22 9 views
11

He creado una aplicación Asp.net MVC. Ahora se requiere manejo 404.Redirecciona a la página 404 programáticamente usando asp.net MVC

Han actualizado global.asax y muestran la página 404 según el código de estado. También se agregó propiedad customErrors en web.config. Funciona bien.

Ahora me gustaría redirigir a 404 programáticamente cuando cualquier cosa no coincida con nuestros requisitos.

es decir, si { retorno RedirectToAction ("Índice", "Page404") (válido!); }

Su trabajando bien, pero hay 2 Estado de uno es 301 & continuación, 404. Así que por favor, hágamelo saber cómo puedo prevenir 301. Sólo necesito 404.

Por favor, hágamelo saber cómo puedo lograr esto ?

Gracias, Laxmilal Menaria

Respuesta

3

En su web.config, añadir:

<customErrors mode="On" > 
     <error statusCode="404" redirect="/404.shtml" /> 
</customErrors> 

Esto redireccionará a la página 404.shtml cuando no se encuentre el recurso solicitado.

Nota: No hay necesidad de redirigir a los usuarios de forma programada para tal situación.


EDIT: literalmente sugiere:

if (Context.Response.StatusCode == 404) { 
    // handle this 
} 
2

Acaba de lanzar un 404 en el código de estado:

Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound 
40

Simplemente regrese de su acción:

return HttpNotFound(); 
+2

Esta es la respuesta correcta. En un caso en el que consulta la base de datos mientras atiende un resultado y encuentra un objeto con la ID especificada por el usuario, no necesita redirigir al usuario a una página 404 (o acción similar) mediante programación. – Dermot

Cuestiones relacionadas