我在我的自定义类中收到此错误。代码如下,我突出显示了出现错误的行,并且我已经检查了 cookie 是否存在:
static private Dictionary<string,string> KeyValueGet()
{
Dictionary<string, string> ArrKeyVal = new Dictionary<string, string>();
NameValueCollection CookieData = new NameValueCollection();
**if (HttpContext.Current.Request.Cookies["CartData"].Values != null)**
{
CookieData = HttpContext.Current.Request.Cookies["CartData"].Values;
string[] CookieKeys = CookieData.AllKeys;
foreach (string s_key in CookieKeys)
{
ArrKeyVal.Add(s_key, CookieData[s_key]);
}
}
return ArrKeyVal;
}
Run Code Online (Sandbox Code Playgroud)
更新:我添加了一个 If 语句来检查“null”,它甚至没有通过这个,我在 if 语句中得到相同的异常,看起来它无法处理 HttpContext.Current.Request 是什么。
任何意见都会受到赞赏。
cookie 可能存在,但要获取它们page,您需要有一个来自客户端的请求以及与其浏览器的连接,以便能够读取浏览器上的 cookie。
如果您从线程内部、进程内部、页面末尾或页面外部的任何位置进行此调用,则 为HttpContext.Currentnull,和/或HttpContext.Current.Request为 null。
尝试从页面调用内部运行该函数。
我通常会为类似的情况添加一个断言,以提醒我是否从不是来自页面的线程进行调用。
Debug.Assert(HttpContext.Current != null, "Need to be call from inside a page");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5285 次 |
| 最近记录: |