2017-06-18 54 views
0

我想使用MVC部分呈現JavaScript網格。爲此,我必須使用jQuery加載&。但是,我不斷收到以下錯誤:在MVC中使用Document.Ready部分

$ is not defined

這應該很簡單......但顯然......事實並非如此。

期部分看起來像:

<h2>Inside the Partial</h2> 

<div id="grid"></div> 

<script type="text/javascript" defer> 

    // ERROR: $ is not defined 
    $(document).ready(function() { 
     // Awesome JavaScript Grid Stuff Will Go Here 
    }); 
</script> 

THE VIEW的樣子:

@using Web.Areas.Administration.ViewModels 
@model LookupsViewModel 

<h1>View Title</h1> 
@Html.Partial(Model.PartialPath, Model.PartialModel) 
+0

腳本不應該局部偏斜。將腳本移動到主視圖。而這個錯誤意味着'jquery- {version} .js'沒有加載。 –

+0

你還可以顯示你正在加載jquery的地方嗎?如果腳本標記位於Partial之後,那麼在調用$的時候甚至不會請求jquery,更不用說加載並運行了。正如斯蒂芬提到的,我不能說是否可以在部分內容中運行內聯jquery。 – NicholasFolk

+0

你的jQuery文件在你使用它之前不會被加載,並且你的js代碼也不會在局部視圖中移動到主視圖 – Saurabh

回答

0

如果你的局部視圖之後通過腳本加載了jQuery,你會試圖在加載和定義之前運行jQuery變量。確保你運行的任何jQuery(無論是否內聯)在頁面請求並加載jquery之後運行。

請參見:Can you write jQuery code inline before loading jQuery?

我給多一點原因,你不應該把中的JavaScript功能部分景色。如果您多次使用「部分」,則可能會重複使用JavaScript。這可能意味着變量被重新定義,eventlistener被添加多次,等等,導致一些令人困惑的錯誤。

1

這裏有兩個主要的事情可以幫助你解決你的問題。

  1. 請確保您對jQuery文件的引用是正確的。大多數你可能在路上遇到問題。

  2. 永遠不要在部分視圖中放入JavaScript。把它們放在父視圖中,在它被調用的局部視圖之前。