繁体   English   中英

在JavaScript条件陈述中使用Razor语法

[英]Using Razor Syntax within JavaScript Conditional Statment

在index.cshtml中,我有以下类似的工作代码:

<script type="text/javascript">

if ('@Model.SomeCondition' === 'True'){
Do Something();
}

</script>

=== 'True'在我看来迫使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中使用要在其中执行的javascript编写if satement。

例:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM