"System.NullReferenceException" 在 MVC 中使用 Session

"System.NullReferenceException" for Using Session in MVC

在我的 MVC 项目中,我使用的会话值如

var empId = Convert.ToInt32(Session["EmpId"].ToString());

我收到异常:

“Project.Web.dll 中发生类型 'System.NullReferenceException' 的异常,但未在用户代码中处理。

附加信息:对象引用未设置到对象的实例。"

您必须检查 null 如下所示:-

var empId = Convert.ToInt32((Session["EmpId"] ?? 0).ToString());

一种更有效的方式来完成您的要求:-

int temp = 0;
var empId = int.TryParse( Convert.ToString( Session["EmpId"] ),out temp );

使用前先检查是否为空

var empId = Session["EmapId"] != null ? Convert.ToInt32(Session["EmapId"]) : 0;

当您在空对象上调用方法时会发生此错误。在你的例子中 Session["EmpId"] 的值是 NULL.

这意味着您正在调用 NULL.ToString(),这是无效的,因此会引发错误。

您可以使用 null coaleascing 运算符避免错误,或者在对其执行任何操作之前简单地检查 null。

解决方案:

if(Session["EmpId"] == null)
 //do something
else
 var empId = Convert.ToInt32(Session["EmpId"].ToString());

或者你可以在上面查看我的 blog post