2012-01-23 4 views
0

"MasterPageFile"속성의 값을 세션 변수의 값으로 설정하려고합니다. MasterPage 세션 값 문제. C#

MasterPageFile = Session["selectedLayout"]; 

이 오류가 말을 계속 : 여기

내가 지금 가지고있는 것입니다

'System.Web.UI.Page.Session'는 '속성'이지만 '방법처럼 사용된다 '

MasterPageFile = Session["selectedLayout"].ToString(); 

을 시도했지만이 오류를 받고있다 :

개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

+3

그 코드가 오류가 발생하지 않아야합니다. 오류의 원인이되는 코드가 올바른지 확인하십시오. –

+0

예 Default.aspx.cs 파일에서 Page_Preinit 함수를 재정의하려고합니다. _default 클래스는 Page 클래스에서 유래합니다. – shenn

답변

0

여기에 바보 같은 질문이 있지만 MasterPageFile이 페이지의 아무 곳에서나 인스턴스화됩니까? 내가 처음으로 MasterPageFile을 참조하고 사용하기 시작한 것이고 이것이 범위를 벗어나면 그 유형의 오류를 얻을 수 있기 때문에 물을 것입니다. 이 검사를 추가

+0

네, 여기 내 Default.aspx <% @ Page Language = "C#"MasterPageFile = "~/LayoutOne.master"의 맨 위에 있습니다. AutoEventWireup = "true"CodeFile = "Default.aspx.cs"Inherits = "_Default"Title = "Reviews"%> – shenn

+0

바로 this.MasterPageFile = "MyTestDesign.master"대신이 작업을 수행하십시오. 이것이 실제로 사전 레이아웃에서 페이지 레이아웃을 변경하는 경우 캐스팅 문제 만 처리합니다. 당신은 (String) Session [ "Whatever"]을 시도해 볼 수 있으며 그것이 트릭을하는지 알 수 있습니다. 또한 해당 객체를 가리키고 그 안에 아무 것도 없는지 볼 수 있습니다. 당신은 그 안에 무엇이 있는지 먼저 확인해야하며, 기본값이 아니라면 행운을 빕니다. –

1

시도 :

if (Session["selectedLayout"] != null)...