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

检查HttpContext.Request.Path时两次触发System.NullReferenceException求助

解决HttpContext中判断Request.Path时的NullReferenceException问题

你遇到的问题核心不是Path本身为空,而是context或者context.Request是null——在C#里访问嵌套属性时,必须确保每一层对象都不为null,否则还没到判断Path是否为null的步骤,就会触发NullReferenceException。

看你代码里的逻辑:不管是context.Request.Path != null还是context.Request.Path == null,都会先尝试获取context.Request,如果context或者Request是null,这一步直接报错,根本走不到判断Path的环节。

正确的处理方式

分步判断(兼容所有C#版本)

先逐层检查对象是否为空,再访问Path:

if (context != null && context.Request != null)
{
    if (context.Request.Path != null)
    {
        // 处理Path不为null的场景
    }
    else
    {
        // 处理Path为null的场景
    }
}
else
{
    // 处理context或Request为空的场景
}

使用空条件运算符(C# 6及以上版本)

用?.简化判断,它会在左侧对象为null时直接返回null,不会继续访问后续属性:

if (context?.Request?.Path != null)
{
    // context、Request、Path都不为null时的逻辑
}
else
{
    // context、Request或Path任意一个为null时的逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:09:38