ASP.net MVC e dilema jQueryUI
-
03-07-2019 - |
Pergunta
Acabei de me mudar um projeto para o lançamento da versão beta do quadro ASP.net MVC
eo único problema que estou tendo é com jQuery
e jQueryUI
.
Aqui está o negócio:
Em Site.Master
são as referências de script seguinte:
<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui.js" type="text/javascript"></script>
E usando esses, o accordian UI
que eu tenho em um dos pontos de vista funciona perfeitamente, exceto por um problema: as imagens de ThemeRoller
não estão incluídos na página. Se eu comentar as referências jQuery, as imagens ThemeRoller estão lá. Todo o css está no Content folder
e todos os scripts estão no Scripts folder
.
Eu sei que este é um problema do caminho bobagem, mas ela está me fazendo tremer.
O que eu estou ausente?
Atualizar
Eu tentei a primeira resposta a nenhum proveito, leia o comentário para mais detalhes. Obrigado mais uma vez para aqueles que estão vendo.
A segunda abordagem não está funcionando. Estou perplexo.
Outro Update
Usando as tags Url.Content
para os scripts de fato permitir que os scripts sejam executados corretamente. Usando uma etiqueta regular para a folha de estilo obtém todos os estilos na página, exceto para todos os relacionados com ThemeRoller.
O arquivo jquery-ui-themeroller.css
está na pasta de conteúdo e quando eu inspecionar um elemento, o css está presente. Eu suspeito que o problema é no mapeamento a partir deste arquivo css para as imagens da pasta para o themeroller, que está na pasta de conteúdo também. links de imagem neste arquivo como especificado como: background: url(images/foo.gif)
Siga os links neste necessidade de arquivo para a mudança?
Solução
isso ajuda?
http://forums.asp.net/p/1334947/2690469.aspx
A razão para a inconstistency é muito simples, embora eu admita que não é fácil de descobrir! Quando você tem um Tag dentro de um
, ASP.NET irá processar a tag e detectar URLs e resolvê-los em relação ao raiz do aplicativo. Quando você tem um
Outras dicas
A menos que todos os seus pontos de vista estão no mesmo nível, você precisa tanto para uso
- Use um caminho absoluto, como /Scripts/jquery-1.2.6.js
- Ou melhor ainda, resolver um caminho virtual, como <% = Url.Content ( "~ / Scripts / jquery-1.2.6.js")%>
Url.Content (http://jvance.com/media/) 2008/10 / 18 / UrlContent5.media
Você precisa mudar as ligações em jquery-ui-themeroller.css para apontar para a localização atual das imagens.
Como, você precisa atualizar o caminho das imagens que o arquivo css está procurando.
background: url(images/foo.gif)
Remova o 'images /' de seus caminhos para torná-lo parecido com:
background: url(foo.gif)
tanto como o seu css e imagens estão na pasta de conteúdo.
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"));