Eu tenho uma ação que leva em uma seqüência que é usada para recuperar alguns dados. Se essa sequência resultar em nenhum dado sendo retornado (talvez porque tenha sido excluído), desejo retornar um 404 e exibir uma página de erro.
Atualmente, apenas uso retornar uma exibição especial que exibe uma mensagem de erro amigável específica para esta ação dizendo que o item não foi encontrado. Isso funciona bem, mas o ideal é retornar um código de status 404 para que os mecanismos de pesquisa saibam que esse conteúdo não existe mais e possam removê-lo dos resultados da pesquisa.
Qual é a melhor maneira de fazer isso?
É tão simples quanto definir Response.StatusCode = 404?
asp.net-mvc
error-handling
http-status-code-404
Paul Hiles
fonte
fonte
Respostas:
Existem várias maneiras de fazer isso,
throw new HttpException(404, "Some description");
fonte
No ASP.NET MVC 3 e acima, você pode retornar um HttpNotFoundResult do controlador.
fonte
return new HttpNotFoundResult("optional description");
HttpNotFound()
. Então você pode voltarreturn HttpNotFound("optional description")
.No MVC 4 e acima, você pode usar os
HttpNotFound
métodos auxiliares internos:ou
fonte
Código:
Web.config
fonte
Eu usei isso:
fonte
Se você estiver trabalhando com o .NET Core, poderá
return NotFound()
fonte
No NerdDinner, por exemplo. Experimente -o
fonte
Nenhum dos exemplos acima funcionou para mim até eu adicionar a linha do meio abaixo:
fonte
return HttpNotFound();
não funcionou para você? que idade tem o seu sistema?return HttpNotFound();
? Funciona muito bem com o MVC 4 para cima. msdn.microsoft.com/en-us/library/… "A propriedade TrySkipIisCustomErrors é usada apenas quando o aplicativo está hospedado no IIS 7.0. Ao executar no modo Clássico no IIS 7.0, o valor padrão da propriedade TrySkipIisCustomErrors é verdadeiro. Ao executar no modo Integrado , o valor padrão da propriedade TrySkipIisCustomErrors é false. "Eu uso:
Isso funciona para mim :-)
fonte
No .NET Core 1.1:
fonte
Você também pode fazer:
fonte
Por favor, tente o seguinte código de demonstração:
fonte