2010-07-06 9 views
1

J'ai un certain jQuery qui écrit des tags d'image dans le navigateur, mais je veux les référencer de telle sorte que je n'ai pas besoin de coder en dur le chemin, et je suis pas capable d'utiliser des chemins relatifs non plus. Ceci est une application .NET, et j'essaie d'utiliser des balises côté serveur.Comment faire pour référencer le chemin absolu de jQuery dans une application .NET

Alors, j'ai changé les éléments suivants:

$('#IMG_' + myID).attr('src','../images/plus.gif'); 

à:

$('#IMG_' + myID).attr('src','<%= Url.Content("~/images/plus.gif") %>'); 

ou:

$('#IMG_' + myID).attr('src','<%= ResolveUrl("~/images/plus.gif") %>'); 

Quand il fonctionne, je reçois des erreurs javascript, Invalid argument sur la ligne 48, char 325 de jquery-1.4.2.min.js.

+1

Faites une source de vue et poster ce qui se sert au client. Avez-vous installé firebug ou utilisez-vous les outils de développement d'IE 8? Ils rendent le diagnostic de ce genre de choses beaucoup plus facile. – Rob

+0

permet également de ne pas utiliser les versions minifiées des scripts en mode dev \ debug. Vous obtenez une meilleure information d'erreur de non js min. – redsquare

+2

Question stupide, mais juste vérifier: Ce code est sur une page ASPX et pas un fichier. Js, non? –

Répondre

2

est ici quelque chose que je l'ai fait dans un projets en couple. Il est conçu pour être utilisé avec ASP.NET MVC, mais j'imagine qu'il pourrait être adopté pour être utilisé avec WebForms.

scénario : common.js

function Environment() { }  
Environment.vroot = ''; 

Environment.getUrl = function(path) { 
    return Environment.vroot + path; 
}; 

vue/contrôle utilisateur partielle: CommonScript.ascx

<script type="text/javascript"> 
    Environment.vroot = '<%= Url.Content("~/") %>'; 
</script> 

je viens de mettre CommonScript.ascx sur ma page principale, mais vous pouvez mettez-le où vous voulez. Il doit être rendu après la référence de script à common.js cependant.

Si vous utilisez, vous pouvez simplement faire pour définir votre URL de l'image:

$('#IMG_' + myID).attr('src', Environment.getUrl('images/plus.gif')); 
+0

Cela fonctionne pour moi. C'est le même modèle que j'utilise sur le côté ASP.NET. Je pense que je vais l'utiliser pour le moment. THX! – Sephrial

1

Si vous ne l'utilisez des répertoires virtuels sur un environnement que vous pouvez simplement utiliser /images/plus.gif

Si votre site contient une URL comme celui-ci localhost/mysite/default.aspx il ne fonctionnera pas

+0

J'ai essayé seulement /images/plus.gif, mais cela n'a pas fonctionné. Qu'est-ce que le travail est /PROJNAME.Web/images/plus.gif. Y a-t-il un moment où le fichier /PROJNAME.Web/ entraînerait un problème? – Sephrial