2012-07-09 196 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(); }); 
    } 
} 

是否行得通?