访问LoginView中的标签

本文关键字:标签 LoginView 访问 | 更新日期: 2023-09-27 17:58:27

我使用asp.net LoginView向经过身份验证或匿名的用户显示不同的数据。

<asp:LoginView ID="LoginView1" Runat="server">
    <LoggedInTemplate>
        <asp:Label ID="Foo" runat="server" />
    </LoggedInTemplate>
    <AnonymousTemplate>
        <asp:Label ID="Bar" runat="server" />
    </AnonymousTemplate>
</asp:LoginView>

当我将FooBar移动到LoginView1时,我无法以这种方式从代码后面访问它们:

Foo.Text = "I am Foo";
Bar.Text = "I am Bar";

在将它们移动到LoginView之前,我能够以这种方式访问它们。我可以使用什么(干净)方法访问这些标签?

访问LoginView中的标签

您需要在LoginView上使用FindControl,并适当地进行Cast,如下所示:

var foo = (Label)LoginView1.FindControl("Foo");
foo.Text =  "I am Foo";