Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# intellisense检测到标签上的Nullref Exc?_C#_Asp.net_Nullreferenceexception_Master Pages - Fatal编程技术网

C# intellisense检测到标签上的Nullref Exc?

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.NET和母版页的概念还很陌生,有一个错误我就是想不出来

这是my 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>
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>