Why dont .NET return null when requesting cookies that don't exist?
如果我使用以下代码检索cookie:
1 | Request.Cookies.Get("LoremIpsum") |
这个cookie不存在,我会得到一个空的cookie而不是空的。这是为什么?
当我想查看响应cookie集合和请求cookie集合时,它会导致一些问题。如果我想要的cookie不存在于响应中,它将向响应cookie集合中添加一个空cookie,然后将其返回给我。因此,在页面加载后,请求中存在的cookie将被空响应cookie替换。
真的很烦人,我猜一定有原因,为什么.NET不返回空值?
It caused some problems
号
它不应该,因为它被记录在案:
If the named cookie does not exist, this method creates a new cookie with that name.
号
所以不要在未检查的情况下分配它:
1 2 3 4 5 | var cookie = Request.Cookies.Get("LoremIpsum"); if (!string.IsNullOrEmpty(cookie.Value)) { Response.Cookies["LoremIpsum"] = cookie; } |
或者,不要使用
1 2 3 4 5 | var cookie = Request.Cookies["LoremIpsum"]; if (cookie != null) { Response.Cookies["LoremIpsum"] = cookie; } |
号