2008-10-18 81 views
6

我剛剛將一個項目移動到了ASP.net MVC框架的測試版,我遇到的唯一問題是jQueryjQueryUIASP.net MVC和jQueryUI困境

這裏的交易:

Site.Master是下面的腳本引用:

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery-ui.js" type="text/javascript"></script> 

,並利用這些,我對其中一個視圖的accordian UI作品完美,但有一個問題:來自ThemeRoller的圖像不包括在頁面中。如果我註釋掉jQuery引用,ThemeRoller圖像就在那裏。所有的CSS都在Content folder中,所有的腳本都在Scripts folder中。

我知道這是一個愚蠢的路徑問題,但它讓我抽搐。

我錯過了什麼?

更新

我嘗試的第一個答案無濟於事,閱讀詳細的註釋。再次感謝那些正在查看的人。

第二種方法也不起作用。我很困惑。

另一個更新

使用Url.Content標籤腳本確實允許腳本正常運行。除了與ThemeRoller相關的所有內容外,對樣式表使用常規標記可將所有樣式放到頁面上。

jquery-ui-themeroller.css文件位於Content文件夾中,當我檢查某個元素時,該css存在。我懷疑問題在於從該css文件映射到位於Content文件夾中的themeroller的images文件夾。此文件中的圖像鏈接指定爲:background: url(images/foo.gif)

此文件中的鏈接是否需要更改?

回答

2

執行此幫助?

http://forums.asp.net/p/1334947/2690469.aspx

的原因inconstistency是 很簡單,雖然我承認它不是 很容易弄清楚!當你有一個內部的頭部< RUNAT =「服務器」 >一個 <鏈接>標籤,ASP.NET將處理 的<鏈接>標記和檢測URL和 解決它們相對於 應用程序的根。如果頁面上有 <腳本>標記(沒有 runat =「server」),那麼ASP.NET將 保留,因爲它只是簡單的 舊的HTML。

使用Url.Content()是我 會用它來解決這個問題,因爲它會 獲得相對於應用程序根解決的辦法, 就像<鏈接>標籤。

+0

它幫助我更好地理解問題並更加接近,但解決方案仍然不在我的掌握之中。 – KevDog 2008-10-18 14:06:49

4

除非你所有的觀點都在同一水平,你需要要麼使用

  • 使用絕對路徑,如/Scripts/jquery-1.2.6.js
  • 甚至更​​好,解決虛擬路徑如<%= Url.Content( 「〜/腳本/ jquery的-1.2.6.js的」)%>

Url.Content() http://jvance.com/media/2008/10/18/UrlContent5.media

+0

我嘗試使用Url.Content標籤,其中改變一件事的選項: 現在一切未加註釋,圖像顯示,但jQueryUI的不工作。 – KevDog 2008-10-18 04:40:15

0

您需要更改jquery-ui-themeroller.css中的鏈接以指向圖像的當前位置。

如上所述,您需要更新css文件正在查找的圖像的路徑。

background: url(images/foo.gif) 

從路徑刪除「圖像/」,使它看起來像:

background: url(foo.gif) 

既是你的CSS和圖像的內容文件夾。

0
protected void Page_Load(object sender, EventArgs e) 
    { 
     Page.ClientScript.RegisterClientScriptInclude(this.GetType(),"JQuery", ResolveUrl("~/js/jquery.min.js")); 
     Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "JQueryUI", ResolveUrl("~/js/jquery-ui.custom.min.js"));