好吧,所以我对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