2013-04-11 63 views
3

我有一個ASP .Net MVC4 Web應用程序。其中我有我的通常的HTML爲_Layout.cshtml,它依次加載默認的主頁/索引。一切正常。0x800a1391 - JavaScript運行時錯誤:'jQuery'未定義

在我的索引中,我也加載了部分視圖。這工作也很好。沒有問題。

我使用從以下網站的UI工具:

http://www.keenthemes.com/preview/index.php?theme=metronic

問題是,它似乎是主要HTML4而不是MVC設計開箱即用,所以我不得不調整它稍微讓它按我想要的方式工作。 (除了非常基本的東西之外沒有什麼)例如,將一部分移動到索引並使用Renderbody()加載它,以便實際的html結構永遠不會改變。我做了這一百萬次,以確保我不會錯過任何可能導致我的問題的結束標籤或其他任何內容。

到目前爲止,根本沒有問題。一切都按照它應該加載。

我繼續創建第二個視圖,並部分提取網站的其他部分。像往常一樣,寶寶首先步驟。在提取任何其他代碼之前,我只是在第一頁中使用了一個「Hello World」,並在部分中使用了一個類似的字符串,以確保它可以正常工作。它是。

現在,當我輸入url Home/ActionName時,整個事情都會重新加載,但看起來很可怕。我得到這個錯誤信息:

0x800a1391 - JavaScript的運行時錯誤:「jQuery的」未定義

下面是我的代碼能清晰地定義它:

<!-- BEGIN CORE PLUGINS --> 
<script src="assets/plugins/jquery-1.8.3.min.js" type="text/javascript"></script> 
<script> 
    jQuery(document).ready(function() 
    { 
     App.init(); // initlayout and core plugins 
     _Layout.init(); 
     _Layout.initJQVMAP(); // init index page's custom scripts 
     _Layout.initCalendar(); // init index page's custom scripts 
     _Layout.initCharts(); // init index page's custom scripts 
     _Layout.initChat(); 
     _Layout.initDashboardDaterange(); //Red date range 
     _Layout.initIntro(); //Pop up messages 
    }); 
</script> 

這點我對jQuery(文檔)。當我看到消息時已經成爲了一部分。

同樣,當我正常加載頁面時,它工作正常。當我自己輸入Home時,它工作正常。它只有當我輸入Home/AnythingElse,它會給出這個錯誤消息。即使我輸入Home /應該加載索引文件,它給了我這個錯誤信息。

jQuery被定義,那麼爲什麼這是發生在回發?

任何幫助表示讚賞。

+1

'不是爲MVC'設計的?我認爲你需要回到ASP.Net教程頁面。沒有冒犯,而且我是認真的。我不像下一個人那麼喜歡ASP,但是它是MVC的一個LOOOOOOOOONG時間,從我所看到的,你已經過度複雜化了。如果他們仍然有,請查看製作MVC音樂庫的教程。 – SpYk3HH 2013-04-11 12:30:03

+1

你指向的jQuery文件可能不在那裏,只有理由jQuery將是undefined – 2013-04-11 12:32:20

+0

沒有冒犯,謝謝你的答案。你錯過了我所說的「開箱即用」的東西,它只是客戶端的東西,所以當然有足夠的調整它將適用於MVC。但我相信從網站上的代碼來看,它的所有html4/css2。當然,它可以在任何地方使用足夠的代碼來支持兼容性,但是我在一年前完成了音樂教程,所以現在我稍微超出了它(儘管仍在學習)。另外,我通常喜歡asp.netnet c#和其他MS技術。謝謝。 :) – 2013-04-11 13:20:57

回答

9

嘗試設置的src jQuery的是從網站的根絕:

<script src="/assets/plugins/jquery-1.8.3.min.js" type="text/javascript"></script> 

注意/以前assets - 當你的src路徑不以/啓動瀏覽器將嘗試與相關資產裝入當前的路徑,所以在你的例子,當你添加了結尾的斜線,以Home它會嘗試從Home/assets/plugins/...

+0

我現在在其他地方發生錯誤,但至少它不是那一個(所以如果需要,我會發表另一個問題)。謝謝你。自從我教過這些東西以來,我就忘記了瀏覽器的東西。 – 2013-04-11 13:26:41

+1

這裏主要是爲了我自己的參考,當我回顧這個時,我想補充說的是,有些情況下這還不夠,在這種情況下,您還必須使用傳統的MVC標準來查找主目錄。即在這種情況下使用〜/資產。在使用/單獨解決的初始問題時,它回來困擾着我,直到我把它放在它的前面。再次感謝您的回答(似乎基本知識每次都能獲得)。 – 2013-04-15 14:05:30

1

加載的jQuery對於我來說,MVC 捆紮機是造成問題(在我案例的UI捆綁)

這是我的工作順序。

<script src="/Scripts/modernizr-2.5.3.js"></script> 
    <script src="/Scripts/jquery-1.7.1.js"></script> 
    <script src="/bundles/jquery-ui"></script> 
    <script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
    <script src="/Scripts/jquery.validate.js"></script> 
    <script src="/Scripts/jquery.validate.unobtrusive.js"></script> 
0

您需要添加jquery-x.xx.x。js首先在validate.js這樣之前

<script src="~/Scripts/jquery-1.10.2.js"></script> 
<script src="~/Scripts/jquery.validate.js"></script> 
相關問題