在我的ASP.NET页面中,我想从客户端表单返回一些数据,最好将其存储为字典对象。现在,我不太确定在我的JavaScript函数中使用什么类型的对象,它曾经从服务器上的代码隐藏处访问(通过Request.Cookies / 任何其他建议的替代方式),然后可以用作.NET字典对象吗?
目前我将数据保存为特定格式的字符串,然后在服务器上将其拆分为数组以使用它。所以,我只是渴望知道一个更好的,当然,更简洁的方式来做到这一点?
答案 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。
和往常一样,务必清理任何输入!