要使用哪些javascript数组/对象类型?

时间:2012-01-10 13:55:44

标签: javascript asp.net webforms web

在我的ASP.NET页面中,我想从客户端表单返回一些数据,最好将其存储为字典对象。现在,我不太确定在我的JavaScript函数中使用什么类型的对象,它曾经从服务器上的代码隐藏处访问(通过Request.Cookies / 任何其他建议的替代方式),然后可以用作.NET字典对象吗?

目前我将数据保存为特定格式的字符串,然后在服务器上将其拆分为数组以使用它。所以,我只是渴望知道一个更好的,当然,更简洁的方式来做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用json传输数据 - 它在Javascript中运行良好,并且在.Net 4.0中受支持。

首先将数据存储在javascript对象中并对其进行字符串化:

var data = {}
data.name = "Joe";
data.age = 17;

// ... whatever else you do ...

// convert to string
var jsonString = JSON.stringify(data);

// ... put in cookie, or use ajax, or use something else to give it to .Net

然后在.Net方面,您可以使用System.Web.Script.Serialization.JavaScriptSerializer将json转换为字典:

String jsonString = HoweverYouGetIt();
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
Dictionary<string,object> data = serializer.DeserializeObject(jsonString) as Dictionary<string,object>;
//you can now use (int)data["name"] 

JavaScriptSerializer可以在仅在.NET 4.0中的System.Web.Extensions程序集中找到,但this question还有其他选择。

至于如何传输数据 - 如果它是动态网络应用程序,请使用ajax。如果它是一个在多个页面中收集数据的网站,请使用cookie。

和往常一样,务必清理任何输入!