2010-02-05 5 views
1

Je veux écrire une méthode d'action retournant Javascript. Comment exécuter javascript en utilisant le contrôleur MVC?Javascript dans le contrôleur

J'ai essayé ce qui suit, mais cela ne fonctionne pas correctement. Il montre le téléchargement de fichiers - avertissement de sécurité?

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult About(clsABC param) 
    { 
     string message = "Hello! World."; 
     System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
     sb.Append("<script type = 'text/javascript'>"); 
     sb.Append("window.onload=function(){"); 
     sb.Append("alert('"); 
     sb.Append(message); 
     sb.Append("')};"); 
     sb.Append("</script>");    
     return JavaScript(sb.ToString()); 
    } 

Une solution à ce problème?

Merci, Kapil

+0

Essayez d'appeler l'action via Ajax? –

Répondre

1

Vous pouvez charger et exécuter le JavaScript avec jQuery getScript method. Dans ce cas, vous pouvez simplement écrire le script que vous voulez exécuter dans votre action et l'appeler avec jQuery.

$.getScript("/Controller/Action", function(){ 
    alert('Script was loaded'); 
    }); 
}); 

Si vous chargez le script sur le bouton clic ne pas oublier d'appeler preventDefault méthode comme celui-ci. Cela empêchera la boîte de dialogue de téléchargement de s'afficher dans votre cas.

$('selector here').click(function(e){ 
    e.preventDefault(); 
    ...Do your stuff... 
    }    
); 
0

Vous pouvez lire ce post

Le framework ASP.NET MVC prend en charge plusieurs types de résultats d'action, y compris:

  1. ViewResult - Représente HTML et le balisage.
  2. EmptyResult - Représente aucun résultat. RedirectResult - Représente une redirection vers une nouvelle URL.
  3. JsonResult - Représente un résultat de notation d'objet JavaScript pouvant être utilisé dans une application AJAX.

5. JavaScriptResult - Représente un script JavaScript.

  1. ContentResult - Représente un résultat de texte.
  2. FileContentResult - Représente un fichier téléchargeable (avec le contenu binaire). FilePathResult - Représente un fichier téléchargeable (avec un chemin).
  3. FileStreamResult - Représente un fichier téléchargeable (avec un flux de fichier).

Hope it helps

Questions connexes