2009-10-21 8 views
1

내 ASP.NET MVC 사이트에서 사용자 정의 오류 처리가 발생했습니다.> 제대로 작동하는 것 같습니다.ASP.NET MVC에서 [HandleError] 특성을 사용하는 방법은 무엇입니까?

나는이 같은 오류 컨트롤러를 가지고있다 -

/Controller/ErrorController.cs 

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult Unknown() 
{ 
    Response.StatusCode = (int)HttpStatusCode.InternalServerError; 
    return View("Error"); 
} 

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult NotFound() 
{ 
    Response.StatusCode = (int)HttpStatusCode.NotFound; 
    return View("Error"); 
} 

뷰가 같은 위치 (메시지가 표시처럼 나는 또한 등, 다른 텍스트를 삭제했습니다) ..

/Views/Error/Error.aspx 

지금, 나는 내가 Unknown 방법 (위) 오류가 발생하면 '전화'하는 방법을 모르겠어요. 나는 [HandleError] 속성을 사용할 수 있다고 생각했는데, 이것은 View를 지정하는 것만을 허용한다. (그리고 내가 제대로하고 있다고 생각하지 않는다. 왜냐하면 에러 URL이 정말로 이상하다.)

답변

0

[HandleError] 특성을 사용하면 ASP.NET에서 제공하는 기본 사용자 지정 오류 처리와 달리 컨트롤러 클래스에서 처리되지 않은 예외에 대한 오류 페이지를 지정할 수 있습니다. 일부 컨트롤러에서는 기본 사용자 지정 오류 동작을 ovveride하려는 경우가 아니라면 기존 ASP.NET 사용자 지정 오류 처리를 사용하고 싶습니다.

<customErrors mode="On" defaultRedirect="~/Error/Unknown"> 
     <error statusCode="404" redirect="~/Error/PageNotFound"></error> 
     <error statusCode="500" redirect="~/Error/Server"></error> 
     <error statusCode="503" redirect="~/Error/Server"></error> 
    </customErrors> 
+0

그래서 [HandleError] 속성을 사용하는 대신 CustomErrors 구성 항목을 사용 하시겠습니까? 그리고 컨트롤러에 오류가 있다면, 이것은 그것을 집을 것인가? (가장 가능성있는 컨트롤러 오류 == HTTP 상태 500이므로 ~/오류/서버 경로가 호출됩니다. –

+0

올바른 : D, 소리가 훨씬 좋았습니다 :) –

+0

유형에 대한 특정보기를 표시하려면 물론입니다. 예를 들어 ("IndexOutOfRangeException")이 발생하면 멋진 메시지를 표시합니다. 그러면 [HandleError] 속성을 사용할 수 있으며 이것은 매우 잘 작동합니다! –

관련 문제