2010-01-05 4 views
3

ASP.NET MVC 응용 프로그램에서 사용자 정의 Error.aspx 페이지가 있습니다. 오류 페이지 (차례로 다른 마스터 페이지를 사용) 마스터 페이지를 사용하고 마스터 페이지에 Html 헬퍼에 대한 호출이 : Error.aspx 마스터 페이지에서 HtmlHelper가 null입니다.

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Unsecure.Master" ... %> 
... 
Html.RenderPartial("LogOnUserControl") 

가 내 Web.config의 모든이 오류 페이지를 사용하도록 설정되어

오류 :

<customErrors mode="RemoteOnly" defaultRedirect="/Views/Shared/Error.aspx" /> 

문제는 ViewMasterPage의 Html 속성이 null이라는 것입니다. 내 이해는이 속성은 null도 ViewPage의 Html 속성에서 단순히 가져온 것입니다. 따라서 HtmlHelper에 대해 부분 메서드를 호출하려는 모든 시도는 NullReferenceException과 함께 실패합니다.

왜 HtmlHelper이 null입니까?

+0

질문이 해결 되었습니까? 나는 똑같은 문제에 직면했다 : ( –

+0

슬프게도, 나는 기억하지 않는다. 그것은 너무 오래 전, 그 프로젝트에서 더 이상 일하지 않는다. 나는 나쁜 사람이다 .--( – Trinition

답변

0

은 MasterPage 페이지 지침은 다음과 같이 수행합니다

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

을 상속 속성 HTML을하지 않고 * 존재하지 않습니다..

+1

또한, defaultRedirect는 라우팅과 함께 작동해야한다. 보기 파일을 직접 가리 키지 마십시오. mark123

+1

Mark, 그 중 하나는 내가 향하고 있던 경로였습니다. 내 생각 엔 MVC 프레임 워크였습니다. 페이지에서 HtmlHelper를 설정하여 컨트롤러를 통과하지는 않지만 ASPX를 직접 건너 뛰면 해당 단계가 건너 뜁니다.하지만 동료는 ASPX 페이지를 단순히 "멍청하게"만들었습니다. (제 의견으로는 catch-all 오류 페이지에 대한 좋은 점) – Trinition

+1

그리고 FWIW, 내 마스터 페이지는 ViewMasterPage에서 상속받습니다. – Trinition

관련 문제