Question

J'ai utilisé une fonction pour construire un chemin d'image dynamiquement comme ceci:

  function () {
            var name = $(this).attr('id') + '_o';
            var newsrc = '../../Content/HomePage/' + name + '.png';

Et je veux affecter le newsrc en utilisant Razor Url. à une balise d'image comme source. Donc, je souhaite faire quelque chose comme ça:

  $(this).attr('src', '@Url.Content(newsrc)');

Mais vs me montre la ligne rouge en disant que le newrc n'existe pas dans le contexte actuel. Comment puis-je utiliser une variable avec URL.Content?

(Remarque: j'utilise cette balise de script à l'intérieur ...)

EDIT: Une idée me vient à l'esprit, peut-être que la porte dérobée passera le NewsRc au contrôleur, utilise URL.Content là-bas pour résoudre l'URL et la transmettre? Est-ce possible?

Toute aide serait appréciée..

Était-ce utile?

La solution 3

Problème résolu par mon aîné. Je crée des appsettings supplémentaires dans web.config (un webDirectory) puis attribue la valeur comme chemin de dossier.

Ensuite, à mon code, je peux facilement construire mon URL en utilisant:

 System.Configuration.ConfigurationManager.AppSettings["WebDirectory"].ToString()...

Partagez simplement ma solution ici, j'espère que cela aidera quelqu'un à l'avenir. Merci.

Autres conseils

Lorsque j'utilise cette technique pour envoyer le chemin à la variable JavaScript, il me montre -1 au lieu du chemin. Le code est comme ci-dessous.

var path= <%= ConfigurationManager.AppSettings["FileManager"] %>;

Vous essayez de passer directement une variable JavaScript à ASP.NET Code - ce qui est impossible.

Vous devrez supprimer le @Url.Content() Et utilisez simplement le chemin relatif dans votre javascript:

$(this).attr('src', newsrc);

Ou alternativement, utilisez le Url.Content() Pour obtenir l'emplacement du dossier et ajoutez le nom de fichier en javascript, comme ceci:

var name = $(this).attr('id') + '_o';
var newsrcFolder = '@Url.Content('../../Content/HomePage/')';
var newsrc = newsrcFolder + name + '.png';
$(this).attr('src', newsrc);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top