Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# 创建用户向导-用户代码未处理空引用异常_C#_Asp.net_Createuserwizard - Fatal编程技术网

C# 创建用户向导-用户代码未处理空引用异常

C# 创建用户向导-用户代码未处理空引用异常,c#,asp.net,createuserwizard,C#,Asp.net,Createuserwizard,我是ASP.NET新手。我有一个名为RegisterUserWiazrd的createUserWiazrd,角色取自本教程的第4步 以下是aspx文件: <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="CreateUsers.aspx.cs" Inherits="Membership_CreateUser" %> &l

我是ASP.NET新手。我有一个名为RegisterUserWiazrd的createUserWiazrd,角色取自本教程的第4步

以下是aspx文件:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"    
 CodeFile="CreateUsers.aspx.cs" Inherits="Membership_CreateUser" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<h2>
    Create Users</h2>
<p>
    <asp:CreateUserWizard ID="RegisterWithRoles" runat="server" 
        ContinueDestinationPageUrl="~/Default.aspx" LoginCreatedUser="False" 
        onactivestepchanged="RegisterWithRoles_ActiveStepChanged">
        <WizardSteps>
            <asp:CreateUserWizardStep runat="server" />

            <asp:WizardStep ID="SpecifyRoles" runat="server" AllowReturn="False" 
                StepType="Step" Title="Specify Roles">
                <asp:CheckBoxList ID="RoleList" runat="server">
                </asp:CheckBoxList>
            </asp:WizardStep>

            <asp:CompleteWizardStep runat="server" />
        </WizardSteps>
    </asp:CreateUserWizard>
</p>
<p>

</p>
</asp:Content>
我一直在犯错误

null reference exception was unhandled by user code - Object reference not set to an instance of an object.
有五个角色,我使用
ASP.NET配置检查了它们。
你能帮我理解这个错误的来源吗


提前谢谢

虽然我不使用提供的向导来实现此功能,而且堆栈跟踪也很有用,但我有理由相信问题就在这里-

WizardStep SpecifyRolesStep = RegisterWithRoles.FindControl("SpecifyRolesStep") as WizardStep;
您选择的FindControl IDSpecifyRolesStep与您的ASPX文件中的ID不匹配-

<asp:WizardStep ID="SpecifyRoles" runat="server" AllowReturn="False" 
            StepType="Step" Title="Specify Roles">
当然,在对象为null的情况下,并不总是可以继续程序流,它可能对功能至关重要,因此除了抛出带有更具体错误消息的ApplicationException以帮助调试之外,您可能无法处理错误

在这种情况下,作为一名开发人员,您显然必须做出判断,当您要做的只是抛出一个异常时,您需要花时间始终检查空值(并使代码混乱)


除了背景之外,您还需要更改用于SpecifyRolesStep的FindControl参数,或者将ASPX中的WizardStep重命名为“SpecifyRoles”以匹配异常。

异常的堆栈跟踪是什么?
<asp:WizardStep ID="SpecifyRoles" runat="server" AllowReturn="False" 
            StepType="Step" Title="Specify Roles">
if (RoleList != null)
{ 
  //code working with RoleList object
}
else
{ 
   //handle missing control
}