2014-09-03 4 views
0

두 페이지를 사용하는 웹 양식이 있습니다. 하나는 기본 페이지이고 다른 하나는 기본 페이지의 Response.Redirect을 통해 액세스 할 수있는 페이지입니다. URL을 알면 간단히 탐색 할 수 있습니다. 그때 나는 Object reference not set to an instance of an object. 예외가 손 전에 값과 동일한 세션 필드를 설정하여 첫 번째 페이지에서 거기에 도착하지 않는 경우, 이후 나는 나의 두 번째 페이지에 내 Page_Load 방법page_load에 세션 필드가있는 것을 피하는 방법은 무엇입니까?

int field4 = (int)(Session["field4"]); //flag to see if the source page redirected to the override page 

있습니다.

아이디어가 있으십니까?

답변

1

항상 ViewState,Session,Application 같은 상태 변수에 대한 NULL 확인, 그래서 페이지로드에 먼저 확인 int 유형으로 null 값을 변환하려고

1

세션 변수가 설정되어 있는지 확인하면 키에 의해 반환 된 값이 null과 같지 않은지 확인할 수 있습니다. 당신이 field4의 값으로 어떤 처리를 수행하지 않는 경우

, 당신은 할 수 있습니다 : 당신이 값을해야하는 경우 캐스트가 사용 가능한 경우

bool didUserArriveViaTheHomePage = (Session["field4"] != null); 

, 당신은 확인할 수 as operator 이전에 캐스팅, 또는 nullable int을 사용할 수 있습니다. 당신은

if (Session["field4"]!=null) 
    { 
     int field4 = (int)(Session["field4"]); 
    } 
3

if(!Page.IsPostBack) 
{ 
if(Session["field4"]!=null) 
int field4 = (int)(Session["field4"]); 

} 
관련 문제