ASP.NET MVC - Retour JavaScriptResult ne fonctionne pas
Si j'essaie de revenir un peu de JavaScript de mon Contrôleur comme ceci:
public ActionResult DoSomething()
{
return JavaScript("alert('Hello world!');");
}
Je n'ai pas vue le message d'alerte dans mon navigateur, mais je reçois une demande de téléchargement pour un .js script à partir de la page nommée comme l'action (register.js dans mon cas). Quel est le problème?
- Comment appelez-vous votre action? Aussi, soyez conscient que ce qui est généralement considéré comme un anti-pattern.
Vous devez vous connecter pour publier un commentaire.
Essayer de le ci-dessous.
J'ai eu un problème similaire avec le JavaScript non-exécution au moment de retourner le résultat sous la forme d'un
JavaScriptResult
. Dans mon cas, le JavaScript, le contenu a été rendu que le texte à l'intérieur<pre>
balises.La solution est de retourner le JavaScript comme un
ContentResult
, à l'aide de laContent()
méthode. Donc, essayez:J'ai trouvé la réponse sur le ASP.NET des forums. Regarder Bruce est une réponse au lien ci-dessous pour une explication plus complète de pourquoi il se fait de cette façon:
Retour JavascriptResult Ne Fonctionne Pas
Je ne serais pas de retour Javascript, je serait de retour
Content
, puis sur la page, je voudrais convertir le contenu à une alerte:Si vous avez besoin de retourner un code js en utilisant JavaScriptResult, gardez à l'esprit que votre action doit être appelée via l'appel ajax. L'appel de cette action via Html.Actionlink ou d'autres commandes directement, les résultats en montrant votre script de texte au lieu d'exécuter le script. Si vous avez besoin d'ajouter un code js dans votre point de vue:
et votre action dans MyController:
Lorsque vous appelez votre action à partir de la vue, assurez-vous d'utiliser
@Ajax.ActionLink
au lieu de la@Html.ActionLink
méthode d'assistance. Le JavaScript puis restituer correctement et que votre alerte s'affiche.