2012-10-02 5 views
2

MVC 응용 프로그램에 ELMAH를 설치 했으므로 예외가 발생하면 친숙한 scren을 표시하려고합니다. 그러나 나는 여전히 YSOD를 얻는다. 그래서 내 web.config에 내가 가지고있다 (나는 또한 성공없이 다른 모드를 시도했다). 내 오류 컨트롤러에 네임 스페이스가 있습니다. ITOF.Controllers { using System.Net; using System.Web.Mvc;MVC : 내 오류 페이지를 볼 수 없습니다.

public class ErrorController : Controller 
{ 
    [AcceptVerbs(HttpVerbs.Get)] 
    public ViewResult Unknown() 
    { 
     Response.StatusCode = (int)HttpStatusCode.InternalServerError; 
     return View("Unknown"); 
    } 

    [AcceptVerbs(HttpVerbs.Get)] 
    public ViewResult NotFound(string path) 
    { 
     Response.StatusCode = (int)HttpStatusCode.NotFound; 
     return View("NotFound", path); 
    } 
} 

}

는이 방법이 전화를받을 때 "에"모드 = 그때 내의 web.config 인 CustomError 모드 = "RemoteOnly"로 변경하라고 알려주는 런타임 오류 YSOD를 얻을 그러나

아마도 내 조회수에 오류가 있습니까?

여기에 있습니다.

Unknown.cshtml;

@{ 
    ViewBag.Title = "Error"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Sorry, an error occurred while processing your request.</h2> 

NotFound.cshtml; 당신의 NotFound 행동

@{ 
    ViewBag.Title = "Not Found"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Lost?</h2> 

    <p>Sorry - your request doesn't exist or was deleted.</p> 

답변

3

당신은 반환해야한다 : 나는 방법의 올바른 오버로드를 사용하기 위해 객체에 두 번째 매개 변수를 캐스팅하고 어떻게

return View("NotFound", (object)path); 

공지 사항. 그렇지 않으면 두 번째 인수가 마스터 페이지 이름을 나타내는 오버로드를 호출합니다.

관련 문제