2012-07-09 249 views
2

如何避免下一个逻辑?我有鉴于未来代码:MVC 3剃须刀,语法错误

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

所以,我想执行$( '#myId2')..仅当 'Model.IsOption' 是真实的。目前Visual Studio强调它是错误的代码。

+0

Model.IsOptions的数据类型是什么?它是布尔型的吗? – amd 2012-07-09 13:59:18

回答

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

你可以尝试:

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

是否行得通?