1

ASP.Net LoginView を使用すると、2 セットの UserName と Password のテキスト ボックスが表示されます。

このマークアップを使用して、AnonymousTemplate から UserName と Password のテキスト ボックスを 1 セットだけ表示する方法を教えてください。

<asp:UpdatePanel 
    ID="UpdatePanelParentsSummary" 
    runat="server" 
    UpdateMode="Conditional">

    <ContentTemplate> 


        <div class="Menu">

            <asp:LoginView 
                ID="loginViewMain" 
                runat="server">

                <AnonymousTemplate>
                    <asp:LoginStatus 
                        ID="loginStatus" 
                        runat="server" />

                    <asp:Login runat="server" ID="login"></asp:Login>
                </AnonymousTemplate>

                <LoggedInTemplate>
                    <asp:LoginName 
                        ID="loginName" 
                        runat="server"
                        FormatString="Hello, {0}!<br/><br/> You have successfully<br/> logged onto the staff site." />

                    (<asp:LoginStatus ID="loginStatus" runat="server" />)

                    <asp:SiteMapDataSource 
                        id="KnowledgeAcademySiteMap" 
                        runat="server"
                        ShowStartingNode="false" />

                    <asp:TreeView 
                        id="TreeViewMain"
                        runat="server"
                        ExpandDepth="0"
                        OnTreeNodeExpanded="TreeViewMain_TreeNodeExpanded"
                        DataSourceID="KnowledgeAcademySiteMap">

                        <RootNodeStyle ImageUrl="/Images/book.png" />
                        <ParentNodeStyle ImageUrl="/Images/book.png" />
                        <LeafNodeStyle ImageUrl="/Images/book.png" />
                    </asp:TreeView>
                </LoggedInTemplate>

            </asp:LoginView>
        </div>

        </asp:ContentPlaceHolder>
    </ContentTemplate>
</asp:UpdatePanel>
4

1 に答える 1

1

<asp:Login>マークアップが表示されている場合、表示されるコントロールは 1 つだけです。これに影響を与える他のマークアップまたはコードが存在する必要があります。

この時点での最良のオプションは、すべてがどこから来ているかを理解するのに役立つコンテンツを追加して、問題をデバッグすることです。たとえば、次のことを試すことができます。

  1. ASPX ファイルの先頭にある @Page ディレクティブで Trace=true を設定して、ページのトレースを有効にします。これにより、ページの下部にコントロール ツリーのグラフが表示され、他のログイン コントロールがどこにあるかを把握するのに役立つ場合があります。
  2. 表示される Login コントロールの直前と直後にダミーのマークアップを追加します。たとえば、テキスト BEGINBEGINBEGIN をその直前に配置し、ENDENDEND を直後に配置します。そのレンダリングが一度見られる場合は、別の場所から別の Login コントロールが来ています。レンダリングが 2 回表示される場合は、何かが原因でコントロール全体が 2 回レンダリングされます。これは、表示されていないカスタム コードから発生している必要があります。
  3. 違いの原因がわかるまで、ページの断片を取り除いて単純化していきます。
于 2013-02-28T17:22:42.640 に答える