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

如何检查Session中的用户邮箱?空值判断报错求助

问题解决:Session空值判断引发的空引用异常

错误原因

你的代码中,HttpContext.Session.GetString("userId") 在用户未登录时会返回 null,此时直接调用 .ToString() 会触发空引用异常——因为null对象无法调用任何方法。

修复方案

方案1:先获取Session值再判断空值

先把Session值存到变量里,再检查是否为空,避免直接对null调用方法:

var sessionUserId = HttpContext.Session.GetString("userId");
if (string.IsNullOrEmpty(sessionUserId))
{
    return RedirectToAction("ErrorPage");
}
string UserMail = sessionUserId; // GetString本身返回string类型,无需额外ToString()

方案2:用空合并运算符简化逻辑

通过??空合并运算符直接处理null情况,让代码更简洁:

string sessionUserId = HttpContext.Session.GetString("userId") ?? string.Empty;
if (string.IsNullOrEmpty(sessionUserId))
{
    return RedirectToAction("ErrorPage");
}
string UserMail = sessionUserId;

额外说明

  • HttpContext.Session.GetString() 方法返回值本身就是string类型,原代码中的.ToString()属于冗余操作,完全可以去掉。
  • 如果Session中存储的不是字符串类型(比如之前存的是数字或自定义对象),需要先判断值是否为null,再进行类型转换,避免再次触发空引用异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:25:59