2009-08-21 17 views
15

Wer haben irgendwelche Beispiele für Javascript ActionErgebnisse? Es fällt mir schwer, das Skript auszuführen, sobald es zurückgegeben wurde. DankeASP.NET MVC Javascript ActionResult

+0

Könnten Sie ein wenig erarbeiten ? – Jimmeh

+0

Sicher sagen wir, dass ich das Folgende von einer Aktion zurückgebe. Javascript ("alert ('Hallo Welt');"); Anstelle eines Alarmdialogs bekomme ich eine Seite, auf der "alert ('Hello World')" angezeigt wird. –

Antwort

16

Hier ist ein Beispiel, das ich auf einer blog post gefunden habe, die es tatsächlich als ein Anti-Muster beschreibt, weil der Controller eingehende Kenntnisse der Ansicht haben muss, um zu funktionieren.

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

Perfekt, danke. –

+1

NP, willkommen in SO! – Joseph

+10

Ich wollte nur hinzufügen für diejenigen, die dies in der Zukunft sehen. Es scheint mir, dass das JavaScript-Ergebnis nur ausgeführt wird, wenn die Aktion über Ajax aufgerufen wird. Wenn Sie diese Aktion über einen Html.Actionlink aufrufen, wird der Text des Skripts zurückgegeben, aber nicht ausgeführt. –

2

Der einzige Weg, die ich gefunden habe eine JavascriptResult zurückzukehren und es auf dem Client ausgeführt werden soll mit JQuery:

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

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

In der Steuerung:

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