Asp.net 从服务器代码向母版页添加HtmlGenericControl

Asp.net 从服务器代码向母版页添加HtmlGenericControl,asp.net,Asp.net,我正在创建一个允许用户登录的网站。成功登录后,每个页面都应显示用户名,例如,在右上角。我在母版页上有一个内容占位符。然后将创建一个h3标记并添加到此ContentPlaceHolder中 母版页: <asp:ContentPlaceHolder runat="server" ID="UserNamePlaceHolder"> </asp:ContentPlaceHolder> 我一步一步地调试。没有出错:没有空值或空值,每个变量都被创建了。但是,根本没有显示用户名。有人

我正在创建一个允许用户登录的网站。成功登录后,每个页面都应显示用户名,例如,在右上角。我在母版页上有一个内容占位符。然后将创建一个h3标记并添加到此ContentPlaceHolder中

母版页:

<asp:ContentPlaceHolder runat="server" ID="UserNamePlaceHolder">
</asp:ContentPlaceHolder>

我一步一步地调试。没有出错:没有空值或空值,每个变量都被创建了。但是,根本没有显示用户名。有人有主意吗

更干净、更好的方法是在母版页上创建公共属性:

public string UserName
{
  get
  {
    return Literal1.Text;
  }
  set
  {
    Literal1.Text = value;
  }
}
<asp:Literal runat="server" ID="Literal1" />
也就是说,将ID为Literal1的文字放在母版页上您想要的任何位置:

public string UserName
{
  get
  {
    return Literal1.Text;
  }
  set
  {
    Literal1.Text = value;
  }
}
<asp:Literal runat="server" ID="Literal1" />
希望这有帮助

protected void Login_LoggedIn(object sender, EventArgs e)
{
    Master.UserName = login.UserName;
    userNamePlaceHolder.Controls.Add(h3);
}