将会话变量强制转换为bool

时间:2011-01-13 15:18:40

标签: c# asp.net request

为什么我不能这样做?

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

编译器给了我:

  

无法将'string'类型转换为'bool'

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

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

4 个答案:

答案 0 :(得分:4)

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

假设RequestHttpRequest(我怀疑),indexer的类型为字符串。

答案 1 :(得分:3)

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

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

更好的是,

使用`bool.TryParse'等......

答案 2 :(得分:1)

在.NET中,NameValueCollection定义为: 表示可以使用键或索引访问的关联String键和 String 值的集合。

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

答案 3 :(得分:0)

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