Вопрос по http, asp.net-mvc – 404 Http обработчик ошибок в Asp.Net MVC (RC 5)

19

Как я могу обработать ошибки 404 без фреймворка, генерирующего код ошибки Exception 500?

Ваш Ответ

4   ответа
4

выбросить новое исключение HttpException (404, «Ресурс не найден»);

0

чтобы правильно вернуть 404.

Как это:

public ActionResult Download(string fontName)
{
    FontCache.InitalizeFonts();

    fontName = HttpUtility.UrlDecode(fontName);

    var font = FontCache.GetFontByName(fontName);
    if (font == null)
        return HttpNotFound();

    return View(font);
}
9

Вы также можете переопределить HandleUnknownAction в вашем контроллере в тех случаях, когда запрос соответствует контроллеру, но не соответствует действию. Реализация по умолчанию вызывает ошибку 404.

Error: User Rate Limit ExceededHandleUnknownActionError: User Rate Limit Exceededstackoverflow.com/questions/619895/…
20

http://jason.whitehorn.ws/2008/06/17/Friendly-404-Errors-In-ASPNET-MVC.aspx дает следующее объяснение:

Добавьте правило маршрутизации с подстановочными знаками в качестве окончательного правила:

routes.MapRoute("Error", 
                "{*url}", 
                new { controller = "Error", action = "Http404" });

Любой запрос, который не соответствует другому правилу, направляется на действие Http404 контроллера ошибок, которое также необходимо настроить:

public ActionResult Http404(string url) {
    Response.StatusCode = 404;
    ViewData["url"] = url;
    return View();
}
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededjason.whitehorn.ws/2008/06/17/…
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededjason.whitehorn.wsError: User Rate Limit Exceeded

Похожие вопросы