Pergunta

Eu tenho procurado em torno de algumas abordagens a usar ELMAH com ASP.Net MVC para que eu possa usar a página de erro personalizada para todas as exceções, incluindo 404s.

não escassez de perguntas pedindo como obter o /Shared/Error.aspx funcionando corretamente em ASP.Net MVC - com ou sem elmah. Eu não tive um problema com essa tarefa, mas eu sinto como se minha solução para usar uma página 404 personalizada ao lado elmah era muito simples e eu não posso afastar a sensação de que não deve haver mais do que isso.

Depois de activar customErrors no web.config, eu criei uma nova acção na minha HomeController:

public ActionResult PageNotFound()
{
    return null;
}

De lá eu adicionei um novo método no meu arquivo Global.asax para tirar proveito de recursos de filtragem de log do elmah e, ??depois de deixar o get exceção registrada, redirecionando parte de trás resposta à ActionResult PageNotFound acima mencionada:

    public void errorLog_Filtering(object sender, ExceptionFilterEventArgs e)
    {
        if (e.Exception.GetType().Equals(typeof(HttpException)))
        {
            HttpException ex = (HttpException)e.Exception;
            if (ex.GetHttpCode() == 404)
                Response.Redirect("/Home/PageNotFound");
        }
    }

Am I com vista para algo que vem com MVC por padrão (porque eu ainda estou encontrando meu caminho para um monte de coisas sobre MVC), ou cismar o problema onde existe uma solução mais simples? Apreciaria qualquer entrada.

Foi útil?

Solução

Estou certo de que ASP.NET pode lidar com esse tipo de coisa para você, você não necessariamente tem que chamar qualquer coisa para redirecionar para o seu 404 Acção dentro de sua global.asax. Veja abaixo um exemplo.

<configuration>
    <system.web>
        <customErrors mode="On">
            <error statusCode="404" redirect="/servererrors/404.aspx" />
        </customErrors>
    </system.web>
</configuration>

http://www.xefteri.com/articles/show.cfm ? id = 11

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top