asp.NET: 无法从内容页访问母版页上的标签

asp.NET: Can't access label on Master Page from Content Page

我的母版页上有一个名为 MyLabelasp:Label 控件,在一个名为 lvMasterasp: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";