2012-03-11 8 views
4

私は、この複数行のJavaScriptスニペット持っている:MVC 3剃刀複雑なjavascriptを条件付きで作る方法?

@if (Model.GetBases) 
{ 
    <snippet above> 
} 

誰もが言うことができる:私はこのように、条件付きビューモデル変数に基づいてページにこのスクリプトを追加したい

$.getJSON('@Url.Action("ReconBases")', 
      { modelId: selectedModelId }, 
      function(selectItems) { 
      buildDropDown('#SelectedReconId', selectItems); 
      }); 

を私はこれが可能な場合、これを行うための正しい構文ですか?私は@:とHtml.Rawを使ってみましたが、うまく動作するようなフォーマットが得られていないようです。

+0

[javascriptの中でかみそりを使う]の可能な複製(http://stackoverflow.com/questions/4599169/using-razor-within-javascript) –

答えて

11

Razorの条件付き出力コードは、<div></div>などのHTMLタグで囲む必要があります(これは出力としてフラグを立て、それ以上のC#コードではありません)。

お客様のニーズに合った特別なタグがない場合は、<text></text>という特別なRazor仕様を使用することができます。レンダリング中にNOTが出力されます。

@if (Model.GetBases) 
{ 
    <text> 
    <snippet above> 
    </text> 
} 

また、これはあなたがここにもjavascriptのいくつかのコードスニペットを持つC#のconditonを作ることができるなど

2

foreachforに適用されます。

マルチラインのJavaScriptコード

使用<text></text>

@if (Model.SomeProp == true) 
{ 
    <text> 
    <Your javaScript Multi-line code> 
    </text> 
} 

単一行のJavaScriptコード

使用@:

@if (Model.SomeProp == true) 
{ 
    @:<Your javaScript single code> 
} 
関連する問題