asp.NET: 无法从内容页访问母版页上的标签
asp.NET: Can't access label on Master Page from Content Page
我的母版页上有一个名为 MyLabel
的 asp:Label
控件,在一个名为 lvMaster
的 asp:LoginView
控件内,我希望能够从内容页面更改它代码隐藏。
我的母版页代码隐藏中有以下代码:
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.
我该如何解决这个问题?
编辑:
我现在意识到这个问题只会在用户未登录时发生(即如果用户不是已经登录的管理员)。所以解决这个问题的方法是 运行ning Master.MyLabel = "My Text";
在 if(<user is logged in>) { }
块中。我应该在那里做什么?
来自this answer:
简单检查用户是否登录:
bool isLoggedIn = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
然后加入if语句:
if(isLoggedIn) Master.MyLabel = "My Text";
我的母版页上有一个名为 MyLabel
的 asp:Label
控件,在一个名为 lvMaster
的 asp:LoginView
控件内,我希望能够从内容页面更改它代码隐藏。
我的母版页代码隐藏中有以下代码:
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.
我该如何解决这个问题?
编辑:
我现在意识到这个问题只会在用户未登录时发生(即如果用户不是已经登录的管理员)。所以解决这个问题的方法是 运行ning Master.MyLabel = "My Text";
在 if(<user is logged in>) { }
块中。我应该在那里做什么?
来自this answer:
简单检查用户是否登录:
bool isLoggedIn = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
然后加入if语句:
if(isLoggedIn) Master.MyLabel = "My Text";