簡體   English   中英

MVC4局部視圖javascript捆綁問題

[英]MVC4 partial view javascript bundling Issue

我正在使用visual studio 11開發一個項目ASP.net 4,MVC4(RC)。我正在嘗試渲染一個呈現局部視圖的MVC4 Razor視圖。 我的部分視圖需要一些JavaScript。 在我的部分視圖中,當我在腳本部分中包含我的javascript,如下所示它似乎沒有加載。

@section Scripts {
    <script type="text/javascript">
        $(function () {
            alert("test");
        });
    </script>
}

如果我刪除腳本部分它失敗,因為當文檔就緒代碼運行時,jquery庫(在我的_Layout.cshtml頁面上捆綁並呈現)尚未加載。

<script type="text/javascript">
    $(function () {
        alert("test");
    });
</script>

_Layout Page代碼加載jquery庫

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

有沒有人知道這個解決方案,還是我只是錯誤的方式? 它破壞了我的頭!

不要將您的腳本包裝在partial.ready中的document.ready中:

@section Scripts {
    <script type="text/javascript">
        alert("test");
    </script>
}

啊,不要把腳本放在局部。 Javascript代碼應放在單獨的javascript文件中。 如果你想在加載部分時執行一些javascript,你只需將這個腳本外部化為一個可重用的函數/插件,你可以在部分加載后調用它。

終於有了這個工作。 我從部分視圖中刪除了我的javascript並將其放在腳本部分的父視圖(不是部分的)中。這個腳本部分是在創建帶有腳手架(Create)的視圖時自動創建的,並且放在了頁。 為了實現這個功能,我必須將它移到頁面頂部 - 在調用渲染部分之前。

ClientDependency正好解決了這個問題,並允許您將腳本引用添加到部分視圖中,這些部分視圖將匯總並放置在頁面末尾(或指定的任何位置)。 它還逐頁處理捆綁,版本控制和縮小。

確保腳本引用的開銷是在“父”視圖而不是部分視圖上並沒有真正打擾我,但如果你有大量的部分需要他們自己的腳本和CSS,那么Client Dependency可能會有所幫助。

暫無
暫無

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

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