在javascript中使用razor语法

tsh*_*ake 1 javascript asp.net-mvc jquery razor

这是我的代码.我基本上想看看我的模型,看看是否存在任何东西.使用三元运算符根据存在显示或隐藏.

$(document).ready(function() {
        (@Model.MyProperties.Any()) ? $('#removeall-toggle').show() : $('#removeall-toggle').hide();
    });
Run Code Online (Sandbox Code Playgroud)

我在chrome dev工具中遇到错误,说:

Uncaught ReferenceError: False is not defined
Run Code Online (Sandbox Code Playgroud)

我如何解决这个问题,或者这是一个更好的方法来实现这一目标?

Shy*_*yju 5

Any()方法将返回,True并且您的代码将在呈现页面时生成以下javascript代码.

$(document).ready(function() {

    (True) ? $('#removeall-toggle').show() : $('#removeall-toggle').hide();
});
Run Code Online (Sandbox Code Playgroud)

现在Javascript会认为它True是可变的,并尝试使用它的值,它找不到它,因为它没有在页面中先前定义.由于此变量未在页面中先前定义,因此您将收到未定义的错误.

undefined Truevaribale true在javascript中不是boolean .所以做一个字符串比较.

$(document).ready(function() {

    ("@Model.Products.Any()"==="True") ?
                        $('#removeall-toggle').show() : $('#removeall-toggle').hide();

});
Run Code Online (Sandbox Code Playgroud)