Exécuter Javascript dans une vue partielle dans ASP.NET MVC

J'utilise ce code JavaScript à l'intérieur de la balise de tête pour remplir les divs avec un bouton de navigation afin que les utilisateurs puissent télécharger des images (swfupload).

<head> ... <script type="text/javascript"> var swfu = function() { return new SWFUpload({ // Backend Settings // settings go here... // Too long to display here // Debug Settings debug: false }); } window.onload = swfu; </script> </head> 

….

 <div id="swfu_container" style="margin: 0px 10px;"> <div> <span id="spanButtonPlaceholder"></span> </div> <div id="divFileProgressContainer" style="height: 75px;"></div> <div id="thumbnails"></div> </div> 

Cela fonctionne bien, mais le problème est quand j'essaie de mettre ce code dans une vue partielle. Jusqu'à présent, je n'ai pas pu faire fonctionner cela.

Y a-t-il quelqu'un de plus expérimenté à la rescousse?

Je vous remercie

Vous pouvez mettre votre fonction comme ceci:

 <%= Ajax.ActionLink("YourAction",new AjaxOptions{ OnSuccess="swfu", UpdateTargetId = "spanButtonPlaceholder" }) %> 

Alors votre fonction swfu sera appelée si votre mise à jour est couronnée de succès

Le point de window.onload est d'exécuter la fonction donnée une fois la page terminée … loading. Cela dit, vous devriez envisager de déplacer la charge vers le bas du corps. Et je ne suis pas le plus grand fan du monde à garder les scripts dans la tête. 🙂

Les vues partielles sont rendues avec Microsoft Ajax qui n'évalue pas le code JavaScript. Je suggérerais de ne pas utiliser des vues partielles dans ce cas-ci ou de regarder d'autres moteurs de vues comme Spark …. ou de mettre tous les javascript requis dans votre vue parent, ce qui rend votre code un peu négligent