2016-08-22 47 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"; 
相关问题