好吧,所以我對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概念有關。有任何想法嗎?
那麼我從LoginView塊中刪除了ContentPlaceHolder,現在標籤「按預期工作」。我怎樣才能達到同樣的結果呢?要擁有僅在登錄時才顯示的內容區域? – Phil 2010-02-02 17:21:15