Nitpicky ReSharper行为,Request.Cookies的null引用

时间:2012-04-25 13:43:47

标签: c# asp.net-mvc cookies resharper nullreferenceexception

这真是一个愚蠢的小事,但我是肛门保持,当R#(6.1)强调我通常想要“修复”它的东西。我正在开发一个MVC4项目,并使用cookie将ID值从一个控制器传递到另一个控制器。我仍然是一个MVC新手,所以也许有更好的方法来做到这一点。无论哪种方式,我都在检查cookie的存在,然后像这样检索它的值:

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

令人烦恼的是,R#正在调用Request.Cookies["id"]作为可能的空引用异常,即使我正在检查cookie是否存在于if语句中。在尝试检索cookie之前是否有更好的方法来检查cookie是否存在,或者我应该在其上放置R#ignore?

1 个答案:

答案 0 :(得分:2)

R#不知道Request.Cookies.AllKeys.Contains(“id”)实际上是检查Request.Cookies [“id”]。值将返回任何内容。所以是的,你必须添加一个R#ignore或添加额外的无用代码行:

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

afaik没有别的办法。