我会将您的选项包装在asp:Panels 中或像epaezr 那样LoginView使用控件
<asp:Content ID="Content3" ContentPlaceHolderID="logProcessHolder" runat="server">
<asp:Panel ID="pnlAnonymous" runat="server">
<p class="header-link"><a href="LoginFormContainer.aspx">login</a> or <a href="RegisterFormContainer.aspx">create an account</a></p>
</asp:Panel>
<asp:Panel ID="pnlVerified" runat="server">
<asp:Literal ID="litUserName" runat="server" />
</asp:Panel>
</asp:Content>
然后在你的代码后面
protected void Page_Load(object sender, EventArgs e)
{
if (Request.IsAuthenticated)
{
pnlAnonymous.Visible = false;
pnlVerified.Visible = true;
litUserName.Text = Context.User.Identity.Name;
}
else
{
pnlAnonymous.Visible = true;
pnlVerified.Visible = false;
}
}
您不必使用面板。您还可以通过为 HTML 元素提供 ID 和runat="server"属性来在代码隐藏中访问它们。例如:<p ID="loginLinks" runat="server" class="header-link">...etc...</p>您可以在哪里更改可见性loginLinks.Visible