2016-08-22 80 views
2

我在我的母版頁上有一個asp:Label控件asp:Label控件asp:LoginView控件lvMaster我希望能夠從後面的內容頁面代碼更改。asp.NET:無法訪問主頁上的內容頁面上的標籤

我有我的母版頁的代碼隱藏在下面的代碼:

public string MyLabel 
{ 
    get 
    { 
     var lblMyLabel = (Label)lvMaster.FindControl("lblMyLabel"); 
     return lblMyLabel.Text; 
    } 
    set 
    { 
     var lblMyLabel = (Label)lvMaster.FindControl("lblMyLabel "); 
     lblMyLabel .Text = value; 
    } 
} 

而且我有這個頁面加載我的內容頁面上:

Master.MyLabel = "My Text"; 

這似乎完全正常工作當我運行它,但是當我把它上傳到我們的託管服務器,我得到以下錯誤:

System.NullReferenceException: Object reference not set to an instance of an object.

^h我可以解決這個問題嗎?

編輯:

我現在已經意識到,當未登錄用戶纔會出現此問題(即,如果用戶不是在管理一個已經登錄)。因此,解決方案將在if(<user is logged in>) { }塊中運行Master.MyLabel = "My Text";。我應該在那裏做什麼?

+0

你可以把它變成的匿名模板登錄視圖 –

+0

我只希望登錄用戶查看標籤。 –

回答

3

this answer

簡單的檢查,如果用戶登錄:

bool isLoggedIn = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated 

然後添加到if語句:

if(isLoggedIn) Master.MyLabel = "My Text"; 
相關問題