Dilema de ASP.net MVC y jQueryUI
-
03-07-2019 - |
Pregunta
Acabo de mover un proyecto a la versión beta de ASP.net MVC
framework y el único problema que tengo es con jQuery
y jQueryUI
.
Aquí está 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 usando esos, el accordian UI
que tengo en una de las vistas funciona perfectamente, excepto por un problema:las imágenes de ThemeRoller
no están incluidos en la página.Si comento las referencias de jQuery, las imágenes de ThemeRoller están ahí.Todo el CSS está 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 hace temblar.
¿Qué me estoy perdiendo?
Actualizar
Intenté la primera respuesta sin éxito; lea el comentario para obtener más detalles.Gracias de nuevo a quienes están viendo.
El segundo enfoque tampoco funciona.Estoy desconcertado.
Otra actualización
Utilizando el Url.Content
Las etiquetas para los scripts permiten que los scripts se ejecuten correctamente.El uso de una etiqueta normal para la hoja de estilo incluye todos los estilos en la página EXCEPTO todos aquellos relacionados con ThemeRoller.
El jquery-ui-themeroller.css
El archivo está en la carpeta 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 del Themeroller, que también se encuentra en la carpeta Contenido.Enlaces de imágenes en este archivo como se especifica como: background: url(images/foo.gif)
¿Es necesario cambiar los enlaces de este archivo?
Solución
¿ayuda esto?
http://forums.asp.net/p/1334947/2690469.aspx
La razón de la inconsistencia es muy simple, aunque admito que no es ¡fácil de entender! Cuando usted tiene una < enlace > etiqueta dentro de un < cabeza runat = " server " > ;, ASP.NET procesará el < enlace > etiquetar y detectar URL y resolverlos en relación con el raíz de la aplicación Cuando usted tiene una < script > etiqueta en la página (sin runat = " servidor ") entonces ASP.NET déjalo en paz ya que es simple HTML antiguo.
Usar Url.Content () es el enfoque I usaría para resolver esto ya que resolverse en relación con la raíz de la aplicación, al igual que < link > etiqueta.
Otros consejos
A menos que todas sus vistas estén en el mismo nivel, deberá usar
- Use una ruta absoluta como /Scripts/jquery-1.2.6.js
- O incluso mejor, resuelva una ruta virtual como <% = Url.Content (" ~ / Scripts / jquery-1.2.6.js ")% >
Url.Content () http://jvance.com/media/ 2008/10/18 / UrlContent5.media
Debe cambiar los enlaces en jquery-ui-themeroller.css para apuntar a la ubicación actual de las imágenes.
Como en, debe actualizar la ruta de las imágenes que está buscando el archivo CSS.
background: url(images/foo.gif)
Elimine las 'imágenes /' de sus rutas para que se vea así:
background: url(foo.gif)
ya que tanto su CSS como sus imágenes están en la carpeta de contenido.
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"));