Javascript if语句不会执行MVC3/razor

Javascript if statement will not execute MVC3/razor

本文关键字:MVC3 razor 执行 if 语句 Javascript      更新时间:2023-09-26

我有以下代码:

<script type="text/javascript">
    if ('@(Model.DidPass)' == 'True') {
        alert('Blah Blah True');
    }
    else {
        alert('Blah blah false');
    }
</script>
我可以看到我的if语句在浏览器中呈现为:
if ('True' == 'True')

由于某些原因,警告('Blah Blah Blah True')不会执行。如果我在VS中步进代码,我可以看到它得到的If语句,然后只是错误。任何想法吗?

你需要像这样从代码过渡到html。否则编译器会认为alert是一个c#方法调用(它不是),当你试图使用它时,你会得到一个编译器错误。

<script type="text/javascript">
    @if(Model.DidPass){
        @:alert('Blah Blah True');
    } else {
        @:alert('Blah blah false');
    }
</script>

如果你的javascript占用了多于一行,你也可以使用psuedo元素<text></text>@:仅适用于直到换行符的文本

你试过了吗:

    if (Boolean('@(Model.DidPass)') == true) {
        alert('Blah Blah True');
    }
    else {
        alert('Blah blah false');
    }

呃…我不会这么做,但是,既然你要这么做,为什么不这样做呢:

<script type="text/javascript">
   alert('@(Model.DidPass ? "blahblahblah true" : "blahlbahlbah false")');
</script>

edit:通过回滚到三元格式来修复代码。

试试===也许?

从未使用过这个MVC3/razor的东西(甚至不知道它是什么),所以这只是一个猜测