asp.不能从内容页访问母版页上的标签

本文关键字:母版页 标签 访问 不能 asp | 更新日期: 2023-09-27 18:03:19

我有一个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";

当我运行它时,这似乎工作得很好,但是当我将它上传到我们的托管服务器时,我得到以下错误:

系统。NullReferenceException:对象引用没有设置为对象的实例。

如何解决这个问题?

编辑:

我现在已经意识到,这个问题只发生在用户没有登录时(即,如果用户不是一个已经登录的管理员)。因此,解决这个问题的方法是在if(<user is logged in>) { }块中运行Master.MyLabel = "My Text";。我在那里应该做什么?

asp.不能从内容页访问母版页上的标签

从这个答案

检查用户是否登录:

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

然后添加到if语句中:

if(isLoggedIn) Master.MyLabel = "My Text";