在C#中将对象发送到Javascript函数

时间:2011-07-19 22:14:28

标签: c# javascript json

我知道有很多方法可以实现这一点,但是当将数据从C#发送到javascript函数时,优先考虑的方法是什么?下面是一个简单的工作示例,它使用attributes.add()将C#中的JSON对象传递给客户端的JS函数。是否有不同的方法来实现这一目标?

c#c​​ode:

    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);            
  ;}

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

使用JSON序列化程序(就像你一样)是IMHO从服务器向客户端方法发送整个对象图的最佳和最安全的方法。它将负责正确编码可能包含的所有危险字符,从而确保客户端不会中断,它可以防止XSS,并且还可以保留数组。