さて、私はASP.NETとMasterPageの概念にまったく慣れていないので、理解できないエラーがあります.
これは私の 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 ";
}
}
}
MemberCreditLabel で Nullref 例外が発生します。IntelliSense で検出されます。問題は、ContentPlaceHolder「ContentLoginContent」がログイン時にのみ表示されることである可能性があると思います。これは私のMasterPageの一部です:
<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の概念と関係があります. 何か案は?