2011-07-19 34 views
5

Hay muchas formas de lograr esto, pero ¿cuál es el método preferido al enviar datos desde C# a una función de JavaScript? Aquí hay un ejemplo de trabajo simple de un objeto JSON en C# que se pasa a una función JS en el lado del cliente usando attributes.add(). ¿Hay alguna forma diferente de lograr esto?Enviar objetos a una función de Javascript en C#

código C#:

public string BuildJSONText() 
    { 
     List<City> cities = new List<City>(); 
     cities.Add(new City("London", "Britain", "Europe")); 
     cities.Add(new City("Tokyo", "Japan", "Asia")); 
     cities.Add(new City("New York", "USA", "North America")); 

     return (new JavaScriptSerializer()).Serialize(cities); 
    } 

    protected void getJSON(object sender, EventArgs e) 
    { 
     string test = BuildJSONText(); 
     getJsonBtn.Attributes.Add("onclick", "getJSON(" + BuildJSONText() + ")"); 
    } 

Javascript:

function getJSON(obj){ 

     alert(obj[0].Name);    
    ;} 

Gracias por su ayuda

Respuesta

3

El uso de un serializador JSON (como lo hace) es mi humilde opinión la mejor y más segura manera de enviar gráficos completos de objetos del servidor a un método del lado del cliente. Se ocupará de codificar correctamente todos los caracteres peligrosos que puedan contenerse y así garantizar que el lado del cliente no se rompa, protege de XSS y también conserva las matrices.

+0

¿Todavía se pasa a la función javascript de la misma manera? –

Cuestiones relacionadas