2008-10-18 14 views
6

Ich habe gerade ein Projekt auf die Beta-Version von ASP.net MVC Framework verschoben und das einzige Problem, das ich habe, ist mit jQuery und jQueryUI.ASP.NET MVC und jQueryUI Dilemma

Hier ist der Deal:

In Site.Master sind folgende Skriptverweise:

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

Und diejenigen mit, die accordian UI, die ich auf eine der Ansichten haben perfekt funktioniert, außer für ein Problem: die Bilder von ThemeRoller sind nicht auf der Seite enthalten. Wenn ich die jQuery-Referenzen auskommentiere, sind die ThemeRoller-Bilder da. Alle der CSS ist in der Content folder und alle Skripte sind in der Scripts folder.

Ich weiß, das ist ein dummer Weg Problem, aber es macht mich zucken.

Was fehlt mir?

aktualisieren

ich die erste Antwort ohne Erfolg versucht, lesen Sie den Kommentar für weitere Einzelheiten. Nochmals vielen Dank für die Zuschauer.

Der zweite Ansatz funktioniert auch nicht. Ich bin verwirrt.

Ein weiteres Update

die Url.Content Tags für die Skripte verwenden in der Tat die Skripte richtig laufen kann. Wenn Sie ein reguläres Tag für das Stylesheet verwenden, werden alle Styles auf der Seite angezeigt, mit Ausnahme von THEME ROLLER.

Die Datei jquery-ui-themeroller.css befindet sich im Ordner Inhalt, und wenn ich ein Element überprüfe, ist das CSS vorhanden. Ich vermute, das Problem besteht in der Zuordnung von dieser CSS-Datei zum Bilderordner für den Themeroller, der sich ebenfalls im Inhaltsordner befindet. Bildlinks in dieser Datei wie angegeben: background: url(images/foo.gif)

Müssen die Links in dieser Datei geändert werden?

Antwort

2

tut diese Hilfe?

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

Der Grund für die inconstistency ist sehr einfach, obwohl ich es nicht einfach herauszufinden zugeben!Wenn Sie einen <Link> Tag in einem runat = "server" <Kopf> haben, wird ASP.NET den <Link> Tag verarbeiten und URLs erkennen und lösen sie in Bezug auf die Wurzel der Anwendung. Wenn Sie ein Skript > Tag auf der Seite (ohne runat = "Server") haben, wird ASP.NET es in Ruhe lassen, da es einfach nur alten HTML ist.

Mit Url.Content() ist der Ansatz, den ich verwenden würde, dies zu lösen, da es in Bezug auf die App Wurzel gelöst bekommen wird , ebenso wie der <Link> Tag.

+0

Es half mir, das Problem besser zu verstehen und näher zu kommen, aber die Lösung ist immer noch nicht in meiner Reichweite. – KevDog

+0

Es stellte sich heraus, dass das heruntergeladene Theme von ThemeRoller nicht sofort funktioniert. Danke für den Hinweis auf die Erklärung. – KevDog

4

Wenn nicht alle Ihre Ansichten auf dem gleichen Niveau sind, werden Sie entweder

  • Verwenden Sie einen absoluten Pfad wie /Scripts/jquery-1.2.6.js
  • Oder noch besser nutzen müssen, lösen Sie einen virtuellen Pfad wie <% = Url.Content ("~/Scripts/jquery-1.2.6.js")%>

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

+0

habe ich versucht, die Möglichkeit, die Url.Content-Tag zu verwenden, die eine Sache geändert: Jetzt mit allem, was unkommentiert, die Bilder anzeigen, sondern die jQueryUI nicht funktioniert. – KevDog

0

Sie müssen die Links in jquery-ui-themeroller.css ändern, um auf die aktuelle Position der Bilder zu zeigen.

Wie in müssen Sie den Pfad der Bilder aktualisieren, nach denen die CSS-Datei sucht.

background: url(images/foo.gif) 

Entfernen Sie die 'images /' aus dem Wege, um es wie aussehen:

background: url(foo.gif) 

wie beide Ihre CSS und Bilder sind in den Inhaltsordner.

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"));