2015-06-23 49 views
0

當沒有人登錄時,我無法訪問頁面。我想在用戶ID匹配時顯示一些按鈕,如果沒有人登錄,只需使用FillPage()顯示頁面。當用戶沒有登錄時NullReference

protected void Page_Load(object sender, EventArgs e) 
    { 
     FillPage(); 

     if (!String.IsNullOrWhiteSpace(Request.QueryString["id"])) 
     { 
      int id = Convert.ToInt32(Request.QueryString["id"]); 
      JobReqModel model = new JobReqModel(); 
      JobDescriptions job = model.GetJob(id); 

      if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString()) 
      { 
       Button2.Visible = true; 
       Button3.Visible = true; 
       Button4.Visible = true; 
       Lineseparator.Visible = true; 
      } 

      else 
      { 
       Button2.Visible = false; 
       Button3.Visible = false; 
       Button4.Visible = false; 
       Lineseparator.Visible = false; 
      } 
     } 

我得到NullReference在這條線

if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString()) 

我明白爲什麼是NULL但如何避免這種情況expcetion?我試圖測試ProviderUserKey是否爲null,並在此之後使用Fillpage。

回答

1

只需添加空檢查。

如果GetUser()返回null,則在嘗試訪問其ProviderUserKey屬性時有NRE。

if (MemberShip.GetUser() != null && Membership.GetUser().ProviderUSerKey.ToString() == josb.PostedBy) 
+0

太棒了,我嘗試了完全相同的東西,但我忘了「!」我會將此標記爲答案。謝謝 – Eduard

相關問題