MVC 3剃须刀,语法错误

时间:2012-07-09 13:56:07

标签: asp.net-mvc-3 razor syntax

如何避免下一个逻辑?我有下一个代码:

<script type="text/javascript">
        var x = $("#myId1").val();
    @if(Model.IsOptions)
    {
     $('#myId2').click(function () { doSomething(); });
    }
</script>

所以,我想要执行$(&#39;#myId2&#39;)..只有当&#39; Model.IsOption&#39;是真的。目前,Visual Studio将其强制为错误代码。

2 个答案:

答案 0 :(得分:6)

@if中的代码应该是C#,而不是JavaScript。 Razor试图在服务器上执行它,而不是在客户端上执行它。要强制它将其视为JavaScript,您应该使用<text></text>@:,就像这样。

<script type="text/javascript">
    var x = $("#myId1").val();
    @if(Model.IsOptions)
    {
        <text>
            $('#myId2').click(function () { doSomething(); });
        </text>
    }
</script>

答案 1 :(得分:0)

你可以尝试:

@{
    if(Model.IsOptions)
    {
         $('#myId2').click(function () { doSomething(); });
    }
}

有效吗?