2009-08-21 21 views
15

¿Alguien tiene algún ejemplo de javascript actionresults? Me está costando conseguir que el script se ejecute una vez que ha sido devuelto. GraciasASP.NET MVC Javascript ActionResult

+0

Podría elaborar un poco ? – Jimmeh

+0

Claro, digamos que estoy devolviendo lo siguiente de una acción. Javascript ("alerta ('Hello World');"); En lugar de un cuadro de diálogo de alerta, aparece una página que tiene "alerta" ("Hola mundo") en ella. –

Respuesta

16

Aquí hay un ejemplo que encontré en un blog post, que en realidad lo describe como un antipatrón, porque el Controlador debe tener un conocimiento profundo de la Vista para poder funcionar.

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

Perfecto, gracias. –

+1

NP, bienvenido a SO! – Joseph

+10

Solo quería agregar para aquellos que ven esto en el futuro. Me parece que el resultado javascript solo se ejecutará cuando se llame a la acción a través de ajax. Llamar a esta acción a través de Html.Actionlink hará que se devuelva el texto de la secuencia de comandos, pero no se ejecutará. –

2

La única manera que he encontrado para devolver un JavascriptResult y ejecutarlo en el cliente es con jQuery:

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

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

En el controlador:

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