Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
雷沙珀:“我不知道。”;“条件总是错误的”;从.jQuery中的ViewBag读取值时出现警告_Jquery_Resharper - Fatal编程技术网

雷沙珀:“我不知道。”;“条件总是错误的”;从.jQuery中的ViewBag读取值时出现警告

雷沙珀:“我不知道。”;“条件总是错误的”;从.jQuery中的ViewBag读取值时出现警告,jquery,resharper,Jquery,Resharper,我正在为控制器中的ViewBag分配一些值,并在View中的jQuery中读取它。我可以看到值,但当我添加一些条件时,ReSharper始终显示条件始终为“false”警告。为什么呢 控制器: public ActionResult ViewQueue(int? id) { try { ViewBag.ConceptId = id; } catch (Exception ex) { Logger.Error("Error")

我正在为控制器中的
ViewBag
分配一些值,并在
View
中的
jQuery
中读取它。我可以看到值,但当我添加一些条件时,
ReSharper
始终显示
条件始终为“false”
警告。为什么呢

控制器:

public ActionResult ViewQueue(int? id)
{
    try
    {
        ViewBag.ConceptId = id;
    }
    catch (Exception ex)
    {
        Logger.Error("Error");
        throw new Exception("Error occured, Error: " + ex.Message);
    }
}
视图:

我也尝试过以下方法,但效果相同:

   // using identity operator
    if (conceptId === null) {
    }

    // Checking 'truthy'
    if (conceptId) {
    }

这里的问题是,您正在混合您的
null
概念<服务器上的code>Null与客户端上的
Null
不同。或者,来自C的
null
Javascript的
null
不同

让我解释一下自己:

查看您的操作签名:
public ActionResult ViewQueue(int?id)
,如果您不在路由上传递id,它将被设置为null,这要感谢C#4.0在2010年恢复的默认参数功能,并为ASP.NET MVC启用了这个有趣的场景

假设我们在第一次通话时传递了一个id:

http://localhost:12345/Ctrl/ViewQueue/5
例如,如果您使用Chrome Developer工具检查客户端上生成的代码,您将看到分配
conceptId
变量的代码行:

var-conceptId='@ViewBag.conceptId'

现在,它已在客户端上转换为如下内容:

var-conceptId='5'

在razor视图渲染期间,在服务器端对表达式进行了求值,并为conceptId指定了ok值

到目前为止,一切顺利

现在让我们在不使用参数的情况下进行尝试。因此,我们调用,将参数设置为null

如果再次检查视图中生成的代码,您将看到一些有趣的内容:

var conceptId = '';
您的行现在已被转换为空字符串赋值,这就是整形器告诉您的:这不可能是
null
。永远


希望这有帮助

这意味着,我必须检查
'
而不是
null
。像这样,
如果(!conceptId.trim()){//为空或空白}
让我试试看会发生什么。非常感谢您的详细解释。
var conceptId = '';