在 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>
这是我的代码
<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>