37

ビュー モデルで特定の条件が true の場合に、JavaScript を実行したいと思います。

<script type="text/javascript">
    @if (Model.Employees.Count > 1)
    {
        executeJsfunction();
    }
</script>

このコードはコンパイルできません。どうすればよいですか?

4

7 に答える 7

18

Razor 条件ブロック内の複数行のスクリプトの場合、次を使用できます。

<script type="text/javascript">
    @if (Model.Employees.Count > 1)
    {
       <text>
            executeJsfunctionOne();
            executeJsfunctionTwo();
            executeJsfunctionThree({
               "var_one": true,
               "var_two": false
            });
       </text>
    }
</script>

これにより、各行に @: を追加するよりも簡潔で実用的になります。ブロック内のすべてが<text></text>スクリプトとしてレンダリングされます。

于 2018-02-03T12:33:19.367 に答える
4

MVC 変数はサーバー側で処理されます。コードは常に HTML を生成するために Javascript 値をレンダリングしようとします。以下のコードを試してください。

<script type="text/javascript">
@{if (Model.Employees.Count > 1)
    {
        @:executeJsfunction();
    }
}
</script>

これが役立つことを願っています。

于 2019-10-23T16:35:43.900 に答える
0

何らかの条件に基づいてJavaスクリプトをレンダリングすることさえしたくない場合

レイアウト html でセクションを定義します

<html> 
<body>  
   @RenderSection("xyz", required: false) 
</body> 
</html>

あなたの見解では

@if (Model.Condition)
{
   @section xyz{
      <script>
        $(function () {
             // Your Javascript
         });
    </script>
   }
}

私の場合、その機能が有効になっていない場合、Javascript を公開したくありません。また、ページのサイズが縮小されます。

于 2019-01-16T13:54:44.743 に答える