2009-03-02 13 views
1

Je suis JavaScript débutant. Ce que j'aimerais pouvoir faire est d'appeler une fonction du fichier .js dans le dossier des scripts du projet ASP.NET MVC.Appel externe .js à partir de ASP.NET MVC

La fonction est:

function myfunction() { 
    alert("HELLO"); 
} 

... et il se trouve dans le fichier brfix.js

Sur un ViewPage je l'appelle comme ceci:

<script src="../../Scripts/brfix.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     myfuntion(); 
    }); 
</script> 

Mais le code doesn ne fonctionne pas. Cependant, si je place js code directement sur le ViewPage, cela fonctionne comme ceci:

<script type="text/javascript"> 
    $(document).ready(function() { 
     alert("HELLO"); 
    }); 
</script> 

Comment appeler une fonction js basée sur les fichiers? Est-ce que JavaScript-Big-Kahuna pourrait m'aider? =)

Répondre

0

Il se peut que la référence au fichier externe est erroné:

<script src="../../Scripts/brfix.js" type="text/javascript"></script> 

Assurez-vous que la référence est correcte. Vous pouvez essayer en utilisant la source de vue pour voir l'emplacement actuel ../../Scripts/brfix.js est traduit en dans la dernière page.
Vous pouvez également essayer avec FireBug de FireFox.

0

Si votre site mvc est le site racine dans iis, vous pouvez démarrer le script src avec une barre oblique pour accéder aux scripts. sinon vous pouvez utiliser un script asp: ScriptManager pour inclure les scripts

1

Si ce code est collé directement à partir de votre code source, vous avez une faute de frappe, ce qui expliquerait pourquoi cela ne fonctionne pas!

votre fonction est appelée myFunction(), mais vous appelez myfuntion()

vous devez activer les erreurs js dans votre navigateur lors du développement. Vous ne dites pas quel navigateur vous utilisez. Pour IE, c'est dans Outils - Options - Avancé. Décochez les options "désactiver le débogage du script". Dans firefox, j'utiliserais quelque chose comme FireBug comme le dit Dror, si la mémoire sert, il y a des choses qui apparaissent en cas d'erreur javascript. Si vous rencontrez toujours des problèmes, j'essayerais d'installer Fiddler2 (dans IE) et de générer une requête pour le fichier js et de voir ce qui revient.

Une autre option serait de mettre un débogueur; appelez juste avant d'appeler votre fonction, vous devriez alors être en mesure de parcourir le javascript.

0

Comme d'autres affiches l'ont mentionné, il y a une faute de frappe. Cependant ...

Consultez la méthode Url.Content() pour référencer le contenu de votre site. (images, scripts, etc ...) L'utilisation de ../ .. n'est pas fiable, surtout si vous avez différents niveaux de profondeur dans vos URL ou si votre application vit dans un sous-répertoire.

Voici une aide que je l'utilise dans la plupart de mes projets, par exemple:

public static string Script(this HtmlHelper Html, string url) 
{ 
    UrlHelper Url = new UrlHelper(new RequestContext(Html.ViewContext.HttpContext, Html.ViewContext.RouteData)); 
    string html = "<script type=\"text/javascript\" src=\"{0}\"></script>"; 
    return string.Format(html, Url.Content(url)); 
} 

Et là, il est appelé:

<%= Html.Script("~/public/js/blah.js") %> 
0

J'ai eu le même problème et il est apparu que je avait quelques fichiers js qui n'ont pas été trouvés.Si la structure de votre projet MVC est la configuration par défaut VS et votre page de vue est Accueil par exemple, je pense que ci-dessous se trouve le fichier:

<script src="../Scripts/brfix.js" type="text/javascript"></script> 

Mais même si celui-ci se trouve d'autres fichiers js pas trouvé causés mon $ (document). prêt à ne pas travailler. Vérifiez votre page dans Firefox Firebug, si un fichier n'est pas trouvé, vous verrez le balisage html avec un message indiquant qu'une ressource n'a pas pu être trouvée, située sous la référence incriminée. Une fois que j'ai résolu toutes les références js, mon $ (document) .ready a fonctionné. Etrangement VS m'a dit qu'il ne pouvait pas trouver les fichiers js lorsque les références étaient correctes, et ne signalait pas le problème lorsque les références étaient incorrectes.

Questions connexes