如何从代码隐藏文件打开母版页上 <a> 的可见性?

How to turn on the visibility of a <a> which is on the master page from code behind file?

这是我的母版页中的代码片段。

<section id="login">
    <asp:LoginView runat="server" ViewStateMode="Disabled">
        <AnonymousTemplate>
            <ul>
                <li><a id="loginLink" runat="server" href="~/Login.aspx">Log in</a></li>
                <li><a id="logoutLink" runat="server" href="#" visible="false">Logout</a></li>
            </ul>
        </AnonymousTemplate>
    </asp:LoginView>
</section>

我想从我的一个页面的代码隐藏文件中打开 ID 为 #logoutlink 的超链接的可见性。我试过这种方法,但没有用。

protected void Page_Load(object sender, EventArgs e)
{
    HyperLink x = (HyperLink)Master.FindControl("logoutLink");
    x.Visible = true;
}

如有任何帮助,我们将不胜感激。

您需要为 LoginView 添加 ID:

asp:LoginView runat="server" ViewStateMode="Disabled" ID="loginView"

然后下面的代码将起作用:

var loginView = Master.FindControl("loginView");
var ul = loginView.Controls[0];
var loginLink = ul.FindControl("logoutLink");