C# Can';t在母版页的内容位置保持架中访问标签

C# Can';t在母版页的内容位置保持架中访问标签,c#,asp.net,master-pages,contentplaceholder,C#,Asp.net,Master Pages,Contentplaceholder,我的母版页包含以下内容: <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> <asp:Label ID="User" runat="server" Text="Welcome, " Visible="false"></asp:Label> </asp:ContentPlaceHolder> 我已经检查了ContentPlaceholder 1是否已找到,并在其

我的母版页包含以下内容:

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    <asp:Label ID="User" runat="server" Text="Welcome, " Visible="false"></asp:Label>
</asp:ContentPlaceHolder>
我已经检查了ContentPlaceholder 1是否已找到,并在其上使用HasControls()返回true,但我似乎无法访问标签


帮帮我?

我也有同样的问题

我所做的是

  MasterPage ctl00 = FindControl("ctl00") as MasterPage;
ContentPlaceHolder cplacehld = ctl00.FindControl("ContentPlaceHolder1") as ContentPlaceHolder;
                Label label1= cplacehld.FindControl("User") as Label;
尝试:

((Label)this.Page.Master.FindControl("User")).Text = "Welcome, " + u.Name;   
((Label)this.Page.Master.FindControl("User")).Visible = true;

这个问题困扰了我大约两个小时,直到我意识到如果我的页面上有一个asp:Content标记,并且contentplaceholder ID设置为母版页中contentplaceholder的ID,我将永远无法访问contentplaceholder中的任何控件。asp:Content页始终与母版页内容合并,即使内容页上的asp:Content标记为空。为了提供默认内容,我将标签移到contentplaceholder标记之外,并将可见性设置为false。如果我随后动态地确定我的asp:content标签没有任何内容,那么我只需将标签可见性设置为true即可显示默认内容。不太优雅,但它可以工作。

尝试查找此.Master.FindControl(“用户”);看看它是否会在什么时候到来,你会调用你的代码?另外,我认为这段代码是在嵌入另一个contentplaceholder的页面上下文中运行的,对吗?我可以告诉您,您的代码在这里工作。@platon-此代码在页面加载时运行。当我在实际页面中放置id=user的标签时,会调用此代码,但我对母版页的理解是,我不应该这样做。@Jackass,对不起,我不理解你。你能上传一个样品吗?
((Label)this.Page.Master.FindControl("User")).Text = "Welcome, " + u.Name;   
((Label)this.Page.Master.FindControl("User")).Visible = true;