在 javascript 中检查模型值是否为空或 null

check model value empty or null in javascript

这是我的代码

 <script>
 var _getValue = @myViewModel.myInfo.Name == null ? 'isNull' : 'notNull';
 </script>

数据库中的值 @myViewModel.myInfo.Name 为空,但此代码总是 return notNull .
我怎样才能正确检查空或空?

这就是 Razor 和 javascript 经常混合使用时会发生的情况,所以不要养成经常这样做的习惯!

考虑这一行:

 <script>
 var _getValue = @myViewModel.myInfo.Name == null ? 'isNull' : 'notNull';
 </script>

这里唯一的服务器端 Razor 片段是 @myViewModel.myInfo.Name,其中 returns null,呈现为空字符串。所以要给客户的是:

 <script>
 var _getValue = '' == null ? 'isNull' : 'notNull';
 </script>

这个现在是纯js,在客户端执行,自然给'notNull'。毕竟,空字符串确实不是空的。

现在考虑一下:

 <script>
 var _getValue = '@myViewModel.myInfo.Name' == '' ? 'isNull' : 'notNull';
 </script>

Razor piece还是一样,@myViewModel.myInfo.Name,还是null,所以给client的是:

 <script>
 var _getValue = '' == '' ? 'isNull' : 'notNull';
 </script>

这次平等实际上成立,所以你得到的是'isNull'。

要快速解决此问题,只需遵循 evaluate expressions in Razor:

的通用语法
 <script>
 var _getValue = '@(myViewModel.myInfo.Name == null ? "isNull" : "notNull")';
 </script>

现在将在服务器端评估整个三元结构。

以后您可能想查看字符串方法 IsNullOrEmpty and IsNullOrWhitespace

您应该将其添加在带有 @ 符号的大括号中

例如

<script>
    var _getValue = '@(myViewModel.myInfo.Name == null ? "isNull" : "notNull")';
</script>