C# 创建用户向导-用户代码未处理空引用异常
我是ASP.NET新手。我有一个名为RegisterUserWiazrd的createUserWiazrd,角色取自本教程的第4步 以下是aspx文件: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
<%@ 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
}