none
怎样用cookies来传递飞字符类型的数据? RRS feed

答案

  • 如果不是字符串类型的,要转换成字符串,如Int型的要进行ToString()在进行保存。

    序列化是将对象转换为字节流以将其保存在内存、数据库或文件中的过程。其主要目的是保存对象的状态,以便可以在需要时重新创建对象。相反的过程称为反序列化。比如你创建了一个对象,对象是不能直接保存在Cookie中的,你就先把它转化成字符串格式的。
    比如
    MengxianHui mxh2 = new MengxianHui();
    mxh2.Name = "孟子E章";
    mxh2.Url = http://blog.csdn.net/net_lover;
    MemoryStream ms2 = new MemoryStream();
    ds.WriteObject(ms2, mxh2);
    String SONString = Encoding.UTF8.GetString(ms2.ToArray());

    JSONString就是一个字符串,下此读取Cookie的时候,就不用再重新生成new MengxianHui了,可以直接通过反序列化成对象,并且保留对象的状态
    String JSONString = "{\"Name\":\"孟宪会\",\"Url\":\"http://dotnet.aspx.cc/\"}";
    DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(MengxianHui));
    MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(JSONString)); //这里不能使用GB2312编码的
    MengxianHui mxh = (MengxianHui)ds.ReadObject(ms);
    ms.Close();

    这个例子参见
    http://dotnet.aspx.cc/article/96a0c148-fddd-48d4-965c-aaac55f15d8a/read.aspx


    .NET Framework 序列化基础可以参考
    http://msdn.microsoft.com/zh-cn/library/ms233836.aspx


    viewstate是通过隐藏的表单域来讲数据在服务器端进行往返的

    这方面的技术和例子,参考
    ASP.NET 视图状态概述
    http://msdn.microsoft.com/zh-cn/library/bb386448.aspx


    孟宪会
    • 已标记为答案 NetAD 2009年3月2日 14:27
    2009年3月2日 13:54
    版主

全部回复

  • Cookie只能传递字符串,飞字符串的数据,你可以进行序列化/反序列化,但 cookie的存储的数据是有限的,也适合存储大数据量的内容。
    另外还可以使用ViewState。
    孟宪会
    2009年3月1日 6:14
    版主
  •  序列化和反序列化是什么意思怎样操作?
    使用viewstate 能做什么怎么使用,我还不明白?
    2009年3月2日 12:35
  • 如果不是字符串类型的,要转换成字符串,如Int型的要进行ToString()在进行保存。

    序列化是将对象转换为字节流以将其保存在内存、数据库或文件中的过程。其主要目的是保存对象的状态,以便可以在需要时重新创建对象。相反的过程称为反序列化。比如你创建了一个对象,对象是不能直接保存在Cookie中的,你就先把它转化成字符串格式的。
    比如
    MengxianHui mxh2 = new MengxianHui();
    mxh2.Name = "孟子E章";
    mxh2.Url = http://blog.csdn.net/net_lover;
    MemoryStream ms2 = new MemoryStream();
    ds.WriteObject(ms2, mxh2);
    String SONString = Encoding.UTF8.GetString(ms2.ToArray());

    JSONString就是一个字符串,下此读取Cookie的时候,就不用再重新生成new MengxianHui了,可以直接通过反序列化成对象,并且保留对象的状态
    String JSONString = "{\"Name\":\"孟宪会\",\"Url\":\"http://dotnet.aspx.cc/\"}";
    DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(MengxianHui));
    MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(JSONString)); //这里不能使用GB2312编码的
    MengxianHui mxh = (MengxianHui)ds.ReadObject(ms);
    ms.Close();

    这个例子参见
    http://dotnet.aspx.cc/article/96a0c148-fddd-48d4-965c-aaac55f15d8a/read.aspx


    .NET Framework 序列化基础可以参考
    http://msdn.microsoft.com/zh-cn/library/ms233836.aspx


    viewstate是通过隐藏的表单域来讲数据在服务器端进行往返的

    这方面的技术和例子,参考
    ASP.NET 视图状态概述
    http://msdn.microsoft.com/zh-cn/library/bb386448.aspx


    孟宪会
    • 已标记为答案 NetAD 2009年3月2日 14:27
    2009年3月2日 13:54
    版主
  • 感谢老师指点!

    2009年3月2日 14:27