在JavaScript条件语句中使用Razor语法

Using Razor Syntax within JavaScript Conditional Statment

本文关键字:Razor 语法 JavaScript 条件 语句      更新时间:2023-09-26

在索引。我有以下类似的工作代码:

<script type="text/javascript">
if ('@Model.SomeCondition' === 'True'){
Do Something();
}
</script>

=== 'True'对我来说似乎是一个奇怪的hack,迫使Razor和JavaScript相处。我如何重构以使用=== true ?这不会得到相同的结果。这可以用Razor和JavaScript完成吗?

如果属性为bool,则可以按以下方式检查剃刀是否符合条件:

<script type="text/javascript">
@if (Model.SomeCondition){
@:Do Something();
}
</script>

或:

<script type="text/javascript">
@if (Model.SomeCondition){
<text>
Do Something();
</text>
}    
</script>

假设SomeCondition是一个字符串,去掉引号,并使其符合javascript的布尔值的小写形式

<script language="javascript">
    // just to be clear this is javascript, not server code
    if (@Model.SomeCondition.ToLowerInvariant()){
        .. // 
    }
</script>

但是,如果SomeCondition在服务器代码中是布尔值,则需要首先转换为字符串并使其小写

<script language="javascript">
    // just to be clear this is javascript, not server code
    if (@Model.SomeCondition.ToString().ToLowerInvariant()){
        .. // 
    }
</script>

只需在c#/razor中编写if语句,并在其中执行您想要执行的javascript。

的例子:

@if(boolVariable)
{
    <script>
        //javascript here
    </script>
}