簡體   English   中英

中的Javascript代碼<script> element within VB Razor

[英]Javascript code in <script> element within VB Razor

我試圖在Razor條件中的視圖中包含一些JS,但它一直試圖將我的JS解釋為VB:

@If includeMoreJs Then
    @<script type="text/javascript" src="/some-js-file.js"></script>
    <script type="text/javascript" src="/some-other-js-file.js"></script>
    <script type="text/javascript">
        function someFunction(p) {
            if (p) foo();
            else bar();
        }
    </script>
End If

我還使用<text> psuedo元素對此進行了嘗試,如下所述: 在JavaScript中使用Razor

@If includeMoreJs Then
    <text>
    <script type="text/javascript" src="/some-js-file.js"></script>
    <script type="text/javascript" src="/some-other-js-file.js"></script>
    <script type="text/javascript">
        function someFunction(p) {
            if (p) foo();
            else bar();
        }
    </script>
    </text>
End If

但還是沒有運氣...我怎樣才能讓VB離開我的JS?

好了,強迫自己創建我的第一個.vbhtml文件,然后四處搜索,您幾乎可以使用<text>塊了。

該頁面是VB Razor語法的不錯資源。

有兩種解決方法,具體取決於@If有多少html:

選項1: @:

每行都需要這樣做,因此通常僅在If只有一行的情況下才使用它:

@If includeMoreJs Then
    @:<script type="text/javascript" src="/some-js-file.js"></script>
    @:<script type="text/javascript" src="/some-other-js-file.js"></script>
    @:<script type="text/javascript">
    @:    function someFunction(p) {
    @:        if (p) foo();
    @:        else bar();
    @:
    @:</script>
End If

.. 很漂亮

選項2: @<text>

因為VB可以具有此答案中所述的XML,所以純<text>將被解釋為VB代碼,而不是剃刀。 因此,在VB中,與C#相比,您需要使用@<text>來獲取HTML塊:

@If includeMoreJs Then
    @<text>
    <script type="text/javascript" src="/some-js-file.js"></script>
    <script type="text/javascript" src="/some-other-js-file.js"></script>
    <script type="text/javascript">
        function someFunction(p) {
            if (p) foo();
            else bar();
        }
    </script>
    </text>
End If

這很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM