2008-10-18 36 views
6

Acabo de mover un proyecto a la versión beta del marco ASP.net MVC y el único problema que tengo es con jQuery y jQueryUI.ASP.net MVC y jQueryUI dilema

Este es el trato:

En Site.Master son las siguientes referencias de script:

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

Y utilizando esos, el accordian UI que tengo en uno de los puntos de vista funciona perfectamente, excepto por un problema: la las imágenes de ThemeRoller no están incluidas en la página. Si hago un comentario sobre las referencias de jQuery, las imágenes de ThemeRoller están ahí. Todos los css están en el Content folder y todos los guiones están en el Scripts folder.

Sé que este es un problema de ruta tonto, pero me está haciendo temblar.

¿Qué me estoy perdiendo?

actualización

probé la primera respuesta en vano, leer el comentario para detalles. Gracias de nuevo por aquellos que están viendo.

El segundo enfoque tampoco funciona. Estoy desconcertado.

otra actualización

Usando los Url.Content etiquetas para los guiones en efecto permiten que las secuencias de comandos para ejecutar correctamente. El uso de una etiqueta regular para la hoja de estilos obtiene todos los estilos en la página EXCEPTO para todos los relacionados con ThemeRoller.

El archivo jquery-ui-themeroller.css se encuentra en la carpeta de contenido y cuando inspecciono un elemento, el css está presente. Sospecho que el problema está en la asignación de este archivo css a la carpeta de imágenes para themeroller, que también está en la carpeta de contenido. Enlaces de imagen en este archivo como se especifica como: background: url(images/foo.gif)

¿Los enlaces de este archivo deben cambiar?

Respuesta

2

ayuda esto?

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

La razón de la inconstistency es muy simple, aunque admito que no es fácil de entender!Cuando se tiene un enlace < > etiqueta dentro de una cabeza < runat = "server" >, ASP.NET procesar el enlace > etiqueta < y detectar direcciones URL y resolverlos relativa a raíz de la aplicación . Cuando tiene una etiqueta > script en la página (sin runat = "server") entonces ASP.NET lo deja en paz, ya que es simplemente HTML antiguo.

Usando Url.Content() es el enfoque que usaría para resolver esto, ya que va a conseguir relativa a la raíz aplicación resuelto, al igual que el > etiqueta < enlace.

+0

Me ayudó a entender mejor el problema y acercarme más, pero la solución todavía está fuera de mi alcance. – KevDog

+0

Resulta que el problema fue que el tema descargado de ThemeRoller no funciona de la caja. Gracias por el puntero a la explicación. – KevDog

4

A menos que todos sus puntos de vista están en el mismo nivel, tendrá que usar ya sea

  • utilizar una ruta absoluta como /Scripts/jquery-1.2.6.js
  • O mejor aún, resolver una ruta de acceso virtual como <% = Url.Content ("~/scripts/jquery-1.2.6.js")%>

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

+0

probé la opción de usar la etiqueta Url.Content, que cambió una cosa: Ahora con todo sin comentarios, las imágenes expuestas y la jQueryUI no está funcionando. – KevDog

0

Necesita cambiar los enlaces en jquery-ui-themeroller.css para señalar la ubicación actual de las imágenes.

Al igual que en, debe actualizar la ruta de las imágenes que el archivo css está buscando.

background: url(images/foo.gif) 

Retire las imágenes '/' de sus caminos para que se vea como:

background: url(foo.gif) 

ya que tanto el CSS y las imágenes se encuentran en la carpeta de contenido.

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