将会话变量设置为bool

将会话变量设置为bool

问题描述:

为什么我不能这样做?将会话变量设置为bool

if ((bool)Request["genericError"] != true) 
    { 
     return; 
    } 

编译器给我:

无法转换类型“字符串”到“布尔”

Request["genericError"]应该是一个对象,所以为什么编译器认为它是一个字符串?

我正在寻找这样做的原因,而不是如何回避它(使用Convert

是什么让你认为Request["genericError"]应该是一个对象呢?

假设RequestHttpRequest(正如我怀疑的那样),indexer是字符串类型。

+0

道歉我错读了intellisense评论“返回HTTPRequest对象” – 2011-01-13 15:22:36

因为它是一个字符串。尝试:

if (bool.parse (Request["genericError"]) != true) return; 

更重要的是,

使用`bool.TryParse”等等......

在.NET中的NameValueCollection被定义为: 表示相关的字符串键和字符串的集合可以用键或索引访问的值。

http://msdn.microsoft.com/en-US/library/system.collections.specialized.namevaluecollection(v=VS.80).aspx

请求变量的值是字符串。它不是会话对象(会是Session [“genericError”])。请求变量总是字符串IIRC。