C# intellisense检测到标签上的Nullref Exc?
好吧,我对ASP.NET和母版页的概念还很陌生,有一个错误我就是想不出来 这是my default.aspx的一部分:C# intellisense检测到标签上的Nullref Exc?,c#,asp.net,nullreferenceexception,master-pages,C#,Asp.net,Nullreferenceexception,Master Pages,好吧,我对ASP.NET和母版页的概念还很陌生,有一个错误我就是想不出来 这是my default.aspx的一部分: <asp:Content ID="ContentLoginContent" ContentPlaceHolderID="LoginContentPlaceHolder" runat="server"> <div id="ContentLoginDiv"> You've got <asp:Label ID="MemberCreditLabel
<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>
MemberCreditLabel上有一个Nullref异常。它通过intelliSense进行检测。我认为问题可能是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>
欢迎
//这就是问题所在吗?
我想做的是显示存储在数据库中的信用额度。这个函数用于检索我想要的数据。我获取当前登录用户的用户名,并希望获取与该用户关联的信用额度。但是标签上的这个奇怪的错误让我完全不知所措。。这可能与母版页的概念有关,我还没有偶然发现。有什么想法吗 显然这是:
这是故意的。内容控件替换模板中contentplaceholder控件的内容。因此,文本框实际上是在模板中安装的,因此需要使用FindControl进行查找-直接访问将不可用
谢谢
WebPlatform和工具团队
然而,使用递归FindControl,我无法在LoggedInTemplate中实际获得控件-实际上,在页面的标记中,ReSharper抱怨它无法解析符号“LoginContentPlaceHolder”-也就是说,它无法在母版页上正确找到内容占位符
是否有任何方法可以在所有经过身份验证的页面上显示信用
或者,您可以使用包含信用计数的LoggedInTemplate将LoginView包装到usercontrol中,并将其放入内容占位符中。我从LoginView块中删除了内容占位符,现在标签“按预期工作”。但是,我怎样才能达到同样的结果呢?要使内容区域仅在登录时显示?我的解决方案是在用户未登录时将标签保持为空。登录后,我会在页面加载下填写标签。不知道这是否是我们想要的方式。。这方面应该有一些最佳实践。
<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>