Enviar múltiples parámetros a JavaScript desde C#

Enviar información a JavaScript desde C# no es tan común, sin embargo, en muchas ocasiones necesitamos enviar múltiples parámetros en un solo llamado.

La ejecución de funciones JavaScript que requieren un solo parámetro resulta tan sencillo que basta con especificar el valor directamente en el ScriptManager.

Sin embargo, se utiliza un pequeño truco para enviar múltiples parámetros desde C# para evitar errores en la ejecución.

Enviar múltiples parámetros a JavaScript

Para este ejemplo tenemos el siguiente método en un archivo JavaScript, este recibe 3 parámetros para mostrar un mensaje.

function Alerta(valor1, valor2, valor3){
    var val1 = valor1;
    var val2 = valor2;
    var val3 = valor3;
    window.alert(val1 + val2 + val3);
}

Como mencionamos anteriormente debemos de utilizar un pequeño truco para enviar más de un parámetro y sin que estos se concatenen.

Lo que debemos hacer es primero es armar el script que pretendemos ejecutar en el cliente, por ejemplo, algo similar a lo siguiente.

string script = string.Format("Alerta('{0}','{1}','{2}');", "Hola", "mundo", "desde C#");

Utilizando un string.Format para armar la cadena de ejecución, además es una buena practica para tener mejor contexto del código.

Podría interesarte Ejecutar funciones JavaScript con onclick ASP.Net  

Por último, queda agregar el script creado al scriptmanager para que sea ejecutado desde C#.

ScriptManager.RegisterStartupScript(this, this.GetType(), "Script", script, true);

El código anterior es uno de los múltiples métodos que tiene ScriptManager para ejecutar funciones JavaScript.

Como resultado podemos obtener el mensaje siguiente en nuestro explorador web.

Enviar múltiples parámetros a JavaScript desde C#

2 Comments

  1. Me gusta la forma en que explicas, pero aquí estoy perdido, en que archivo o parte se colocan estos códigos, van en el mismo?, que versión usas?, gracias

    1. Que tal.
      la función Alerta se coloca en un archivo javascript.
      La variable script y el método ScriptManager.RegisterStartupScript(), se colocan en el codebehind(C#) del archivo aspx

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *