You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET+C#中System.NullReferenceException异常求助

排查System.NullReferenceException异常的步骤

你的代码抛出空引用异常,核心原因是某个对象为null时你访问了它的属性/方法,结合你的代码,按以下顺序排查:

1. 检查服务器控件的runat="server"属性

确保前台页面里的所有控件(txt_id、txt_email、ddl_gender等)都添加了runat="server"属性,示例:

<asp:TextBox ID="txt_id" runat="server"></asp:TextBox>
<asp:DropDownList ID="ddl_gender" runat="server"></asp:DropDownList>

如果没有这个属性,后台代码无法获取控件实例,访问.Text会直接触发空引用异常。

2. 检查DropDownList的SelectedItem是否为null

如果ddl_gender未绑定数据、也未手动添加选项,SelectedItem会是null,此时访问.Text必然报错。可以先判断再取值:

gender = ddl_gender.SelectedItem?.Text ?? string.Empty;

或者确保DropDownList在页面加载时已有默认选项。

3. 检查方法调用的时机

确认GetSearchInput()方法在页面生命周期的合适阶段调用(比如按钮点击事件、Page_Load之后)。如果在Page_Init阶段调用,控件还未完成初始化,会导致控件实例为null。

4. 验证SearchInput类的定义

确保SearchInput类的属性是public可访问的,且命名完全匹配:

public class SearchInput
{
    public string id { get; set; }
    public string email { get; set; }
    public string gender { get; set; }
    public string fname { get; set; }
    public string lname { get; set; }
}

快速调试技巧

在GetSearchInput()方法开头加断点,逐个检查txt_id、ddl_gender等控件是否为null,以及ddl_gender.SelectedItem是否为null,可快速定位具体为空的对象。

内容的提问来源于stack exchange,提问作者Alan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:03:35