我的主页上有一个asp:Label
名为MyLabel
的控件asp:LoginView
名为lvMaster
的控件,我希望能够从后面的内容页面代码更改
我的主页面代码隐藏了以下代码:
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:未将对象引用设置为对象的实例。
我该如何解决这个问题?
修改
我现在意识到只有在用户未登录时才会出现此问题(即,如果用户不是已登录的管理员)。因此,解决方案是在Master.MyLabel = "My Text";
块中运行if(<user is logged in>) { }
。我该怎么办?
答案 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";