[英]Object reference not set to an instance of an object, error message returned from a webcontrol
[英]Object reference not set to an instance of an object error message
Session["IsChaffeurUsed"]
未定义-您尚未使用键IsChaffeurUsed
设置任何会话变量
您需要检查是否已设置第一项,
bool isChaffeurUsed;
if(Session["IsChaffeurUsed"] != null)
isChaffeurUsed = (bool)Session["IsChaffeurUsed"];
您需要先检查对象,然后尝试:
var isChaffeurUsed = false;
if (Session["IsChaffeurUsed"] != null)
{
isChaffeurUsed = bool.Parse(Session["isChaffeurUsed"].ToString());
}
该错误试图告诉您Session["IsChaffeurUsed"]
不存在。
如果您知道默认值,则可以将语句更改为:
bool isChaffeurUsed = (bool)(Session["IsChaffeurUsed"] ?? false)
或者,如果您想允许使用空值(这表示该值未专门设置为任何值),则可以使用可空类型:
bool? isChaffeurUsed = (bool?)Session["IsChaffeurUsed"];
最有可能的是,您在Session
没有任何名称为"IsChaffeurUsed"
。
如果Session为null或在Session中找不到IsChaffeurUsed,则会得到该异常。 会话可能不为null,因此可能会出现找不到IsChaffeurUsed的问题。
如果未设置IsChaffeurUsed,则需要决定如何处理。 例如,您可以假设它是错误的:
bool isChaffeurUsed = Session["IsChaffeurUsed"] == null ? false
: (bool)Session["IsChaffeurUsed"];
由于以下原因存在TryParse()方法:
bool.TryParse(Session["IsChaffeurUsed"], out isChaffeurUsed)
查看会话变量的一件事是,变量在初次读取后很可能会消失(这在我身上有几次发生)。 这通常是我在ASP应用程序中查看会话/缓存变量时使用的模式:
object o = null;
if((o = Session["IsChaffeurUsed"]) != null)
{
// Do something with o: bool.Parse, (bool), etc...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.