Asp.net mvc JQuery中的MVC空视图包
我有一个没有价值的ViewBag。我甚至没有定义ViewBag.SelectVale 所以我希望它是一个空值 在JQuery中执行以下操作但不起作用时:Asp.net mvc JQuery中的MVC空视图包,asp.net-mvc,c#-4.0,viewbag,Asp.net Mvc,C# 4.0,Viewbag,我有一个没有价值的ViewBag。我甚至没有定义ViewBag.SelectVale 所以我希望它是一个空值 在JQuery中执行以下操作但不起作用时: if ('@ViewBag.SelectVale' == null){ // do something } 取而代之的是: if ('@ViewBag.SelectVale' == ""){ // do something } 在.NET framework中,null以空
if ('@ViewBag.SelectVale' == null){
// do something
}
取而代之的是:
if ('@ViewBag.SelectVale' == ""){
// do something
}
在.NET framework中,
null
以空字符串的形式获取输出,因此,如果您查看发送到浏览器的实际javascript,在第一种情况下,它会说:
if ('' == null)
if ('' == "")
。。。在第二种情况下,它会说:
if ('' == null)
if ('' == "")
大多数javascript程序员会告诉您只需将语句更改为:
if ('@ViewBag.SelectVale')
。。。因为在javascript中将空字符串视为布尔值时,其计算结果为false
或者,由于这里似乎没有任何真正的动态变化,请尝试以下方法:
@if(ViewBag.SelectVale == null) {
<text>
// do something in javascript.
</text>
}
@if(ViewBag.SelectVale==null){
//用javascript做一些事情。
}
。。。这甚至可以避免输出“do something”javascript,因为在呈现页面时,您知道SelectVale为空。但是您将razor eval放在了引号中。。。在JavaScript中将其设置为字符串(顺便说一句,您正在进行比较)。如果您查看razor视图生成的HTML,应该会很明显……如果('@ViewBag.SelectVale'='')对我有效。非常感谢。