Asp.Net MVC(RC 5)의 404 Http 오류 처리기
-
01-07-2019 - |
문제
프레임워크에서 예외 500 오류 코드를 발생시키지 않고 핸들러 404 오류를 처리하려면 어떻게 해야 합니까?
해결책
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();
}
다른 팁
요청이 컨트롤러와 일치하지만 작업과 일치하지 않는 경우 컨트롤러 내에서 HandleUnknownAction을 재정의할 수도 있습니다.기본 구현에서는 404 오류가 발생합니다.
throw new HttpException(404, "리소스를 찾을 수 없음");
MVC 3에서는 HttpNotFound()를 반환하여 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);
}
제휴하지 않습니다 StackOverflow