Hola, hemos encontrado la respuesta a lo que andabas buscando, has scroll y la obtendrás un poco más abajo.
Solución:
serializarlo con System.Web.Script.Serialization.JavaScriptSerializer
clase y asignar a javascript var
muestra ficticia:
<% var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); %>
var jsVariable = <%= serializer.Serialize(array) %>;
Esto es para complementar la respuesta de zerkms.
Para pasar datos a través de las barreras del idioma, necesitaría una forma de representar los datos como un string mediante la serialización de los datos. Uno de los métodos de serialización para JavaScript es JSON. En el ejemplo de zerkms, el código se colocaría dentro de una página aspx. Para combinar su ejemplo y el tuyo en una página aspx, tendrías,
<%
int[] numbers = new int[5];
// Fill up numbers...
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
%>
en algún lugar más adelante en la página aspx
Sin embargo, esta respuesta asume que está generando JavaScript desde la carga de la página inicial. Según los comentarios en su publicación, esto podría haberse hecho a través de AJAX. En ese caso, haría que el servidor respondiera con el resultado de la serialización y luego lo deserializaría en JavaScript usando su marco favorito.
Nota: Tampoco marque esto como una respuesta ya que quería resaltar la sintaxis para aclarar otra respuesta.
Puede usar ClientScript.RegisterStartUpScript para inyectar javascript en la página en Page_Load.
Aquí hay un enlace a la referencia de MSDN: http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx
Aquí está el código en Page_Load:
List tempString = new List();
tempString.Add("Hello");
tempString.Add("World");
StringBuilder sb = new StringBuilder();
sb.Append("");
ClientScript.RegisterStartupScript(this.GetType(), "TestArrayScript", sb.ToString());
Notas: Use StringBuilder para construir el script string ya que probablemente será largo.
Y aquí está el Javascript que verifica el inyectado array “testArray” antes de poder trabajar con él:
if (testArray)
// do something with testArray
Hay 2 problemas aquí:
-
Algunos consideran esto intrusivo para que C# inyecte Javascript
-
Tendremos que declarar el array en un contexto mundial
Si no puede vivir con eso, otra forma sería hacer que el código C# guarde el Array en View State, luego haga que JavaScript use PageMethods (o servicios web) para volver a llamar al servidor para obtener ese View State objeto como un array. Pero creo que puede ser excesivo para algo como esto.