Asp.net ';System.Web.UI.ITemplate';不包含';FindControl';

Asp.net ';System.Web.UI.ITemplate';不包含';FindControl';,asp.net,Asp.net,我试图在LoginView LoggedIn模板中获取LoginName控件,尽管有几种方法,但代码仍然无法工作 我希望将默认用户名更改为客户名称。我尝试在LoggedInTemplate中查找控件,但出现以下错误: 'System.Web.UI.ITemplate' does not contain a definition for 'FindControl' and no extension method 'FindControl' accepting a first argument o

我试图在LoginView LoggedIn模板中获取LoginName控件,尽管有几种方法,但代码仍然无法工作

我希望将默认用户名更改为客户名称。我尝试在LoggedInTemplate中查找控件,但出现以下错误:

 'System.Web.UI.ITemplate' does not contain a definition for 'FindControl' and no extension method 'FindControl' accepting a first argument of type 'System.Web.UI.ITemplate' could be found (are you missing a using directive or an assembly reference?
代码如下:

 <asp:LoginView ID="LoginView1" runat="server">
   <LoggedInTemplate> 


                 Hello, <asp:LoginName ID="LoginName1" runat="server"></asp:LoginName>

                 <br /> 

                 <div style="text-align: right; margin-right: 5px "> 
                <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutPageUrl="~/Home.aspx" Font-Underline="True" />
                </div></div>
        </LoggedInTemplate>


    </asp:LoginView>  

这应该可以正常工作(这是您的注释代码):

我认为你的问题在于你从来没有使用过Login1_LoggedIn方法。尝试在方法中添加断点,开始调试并查看是否命中

protected void Login1_LoggedIn(object sender, EventArgs e)
    {

        LoginName loginName = LoginView1.LoggedInTemplate.FindControl("LoginName1") as LoginName;
       // LoginName loginName = LoginView1.FindControl("LoginName1") as LoginName;

       // loginName.FormatString = fullName;

    }
LoginName loginName = LoginView1.FindControl("LoginName1") as LoginName;
loginName.FormatString = fullName;