3

这确实是一件愚蠢的小事,但我很固执,当 R# (6.1) 强调某些内容时,我通常想“修复”它。我正在开发一个 MVC4 项目,并使用 cookie 将 ID 值从一个控制器传递到另一个控制器。我还是一个 MVC 新手,所以也许有更好的方法来做到这一点。无论哪种方式,我都在检查 cookie 的存在,然后检索它的值,如下所示:

var idCookieString = string.Empty;
if(Request.Cookies.AllKeys.Contains("id"))
{
    idCookieString = Request.Cookies["id"].Value;
}

Request.Cookies["id"]令人烦恼的是,尽管我正在检查if语句中是否存在 cookie,但R# 正在调用可能的空引用异常。有没有更好的方法可以在尝试检索 cookie 之前检查它是否存在,或者我应该在其上放置一个 R# 忽略?

4

1 回答 1

2

R# 不知道 Request.Cookies.AllKeys.Contains("id") 实际上是检查 Request.Cookies["id"].Value 是否会返回任何内容。所以是的,您必须添加 R# 忽略或添加额外的无用代码行:

if (Request.Cookies["id"] != null)

afaik没有其他办法。

于 2012-04-25T13:48:55.103 回答