2010-02-02 44 views
2

好吧,所以我對ASP.NET和MasterPage概念很陌生,並且出現了一個我無法弄清楚的錯誤。Nullref Exc。通過智能識別檢測到標籤?

這是我的Default.aspx的一部分:

<asp:Content ID="ContentLoginContent" ContentPlaceHolderID="LoginContentPlaceHolder" runat="server"> 
<div id="ContentLoginDiv"> 
    You've got <asp:Label ID="MemberCreditLabel" runat="server" Text="0"></asp:Label> credits. 

</div> 

這是我default.aspx.cs的相關部分:

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Init(object sender, EventArgs e) 
    { 

    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (User.IsInRole("Authenticated")) 
     { 


      MemberCreditLabel.Text = "hello "; 
     } 

    } 
} 

我得到一個Nullref例外在MemberCreditLabel上。它被智能感知檢測到。我想這個問題可能是因爲的ContentPlaceHolder「ContentLoginContent」只有在登錄後顯示這是我的母版的一部分:

<asp:LoginView ID="MemberLoginView" runat="server"> 
      <AnonymousTemplate> 
       <asp:Login ID="LogInBox" runat="server" Height="137px" style="margin-left: 0px" 
        Width="16px"> 
       </asp:Login>  
      </AnonymousTemplate> 
      <LoggedInTemplate> 
       Welcome <asp:LoginName ID="MemberLoginName" runat="server" /> ! 
       <asp:LoginStatus ID="MemberLoginStatus" runat="server" /> 
       <asp:ContentPlaceHolder ID="LoginContentPlaceHolder" runat="server"> 
       //Is this the problem? 
       </asp:ContentPlaceHolder> 
      </LoggedInTemplate> 
      </asp:LoginView> 

我想要做的是顯示存儲在數據庫中的信用額度。用於檢索我想要的數據的功能。我採用當前登錄用戶的用戶名並希望獲得與用戶關聯的信用額度。但是這個標籤的這個奇怪的錯誤使我完全停止了。這可能與我尚未偶然發現的MasterPages概念有關。有任何想法嗎?

+0

那麼我從LoginView塊中刪除了ContentPlaceHolder,現在標籤「按預期工作」。我怎樣才能達到同樣的結果呢?要擁有僅在登錄時才顯示的內容區域? – Phil 2010-02-02 17:21:15

回答

1

顯然,這是by design

這是由設計。內容控件替換模板內的contentplaceholder控件的內容。因此,文本框實際上被模板化,因此需要使用FindControl進行查找 - 直接訪問將不可用。

謝謝,

WebPlatform和工具團隊。

然而,使用遞歸的FindControl,我是不是能夠真正得到顯示LoggedInTemplate內部控制的保持 - 在頁面的標記的確,ReSharper的抱怨,它無法解析符號「LoginContentPlaceHolder 「 - 即它無法在MasterPage上正確找到內容佔位符。

有沒有什麼辦法可以在所有認證頁面上顯示積分?

或者,您可以將包含信用點數的LoggedInTemplate包含到用戶控件中,然後將其放在內容佔位符內。

+0

我的解決方案是在用戶未登錄時僅將標籤保留爲空。登錄時,我在Page_Load下填充標籤。不知道這是否是預期的方式..對此應該有一些最佳做法。 – Phil 2010-02-03 13:52:31