2009-08-21 11 views
15

Qualcuno ha qualche esempio di actionresults javascript? Sto avendo difficoltà a far eseguire lo script una volta che è stato restituito. GrazieASP.NET MVC Javascript ActionResult

+0

Potrebbe elaborare un po ' ? – Jimmeh

+0

Certo diciamo che sto restituendo quanto segue da un'azione. Javascript ("alert ('Hello World');"); Invece di una finestra di avviso, visualizzo una pagina che contiene "avviso ('Ciao mondo')". –

risposta

16

Ecco un esempio che ho trovato su un blog post, che in realtà lo descrive come un anti-pattern, perché il Controller deve avere una conoscenza approfondita della Vista per funzionare.

public ActionResult DoSomething() { 
    string s = "$('#some-div').html('Updated!');"; 
    return JavaScript(s); 
} 
+0

Perfetto, grazie. –

+1

NP, benvenuto in SO! – Joseph

+10

Volevo solo aggiungere per coloro che visualizzano questo in futuro. Mi sembra che il risultato di javascript verrà eseguito solo quando l'azione viene chiamata tramite ajax. Chiamando questa azione tramite un oggetto Html.Actionlink, il testo dello script viene restituito, ma non eseguito. –

2

L'unico modo che ho trovato per restituire un JavascriptResult ed eseguirlo sul client è con JQuery:

<script> 
$(document).ready(function() { 
    $("button").click(function() { 
     $.getScript("/Home/ShowAlert"); 
    }); 
}); 
</script> 

<button>Use Ajax to get and then run a JavaScript</button> 

Nel controllore:

public JavaScriptResult ShowAlert() { 
     var script = "alert('Hello');"; 
     return new JavaScriptResult() { Script = script }; 
} 
Problemi correlati