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

时间:2015-06-02 15:31:15

标签: javascript c# asp.net-mvc razor conditional

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

<script type="text/javascript">

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

</script>

=== 'True'对我来说似乎是一个奇怪的黑客,迫使Razor和JavaScript相处。如何重构使用=== true?这并没有给出相同的结果。可以用Razor和JavaScript完成吗?

3 个答案:

答案 0 :(得分:5)

如果属性为bool,您可以通过以下方式检查剃须刀:

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

或:

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

答案 1 :(得分:1)

假设SomeCondition是一个字符串,请删除引号,并使其符合javascript&#39; s布尔值的小写形式

<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>

答案 2 :(得分:0)

只需在c#/ razor中用你想在那里执行的javascript编写if语句。

示例:

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