viewstate是存储在客户端的隐藏信息,当服务器接受请求回传时可以将viewstate内容回传到页面中,,其机制可自动实现,控件的属性中都有viewstate,只需将其设置为true即可,就可以保存控件信息.
session是客户端会话,具体应用举例:比如你进入淘宝网,购物,当你选中欲购买的产品时,你点下一页按钮进入另外另一个页,那么如何存储这些表格信息呢,就可以用到session(tableid)了,这样session就可以存储你前一页选的产品表格了,然后这一页又选了哪些产品,你可以把这些新的记录集再加入老的表格中,最后产生新表,并存储在session中,Session变量又可被下一页面调用.
最后在用户购买单中就可以调用最终session,产生表格,提交购物.

解决方案 »

  1.   


    当aspx页面重新加载后,上一次的存放在变量中的数据就会丢失的。
    用ViewState来保存
    如ViewState["aaa"]="要保存的值";
    下次读取的时候可以先用if(ViewState["aaa"]==null)来判断一下是否有值
    ViewState["aaa"]获得是object类型的,用的时候转一下先
    Session是服务器的内存中,最大10KB,默认20分钟释放。
    ViewState只能在一个页面上传值,session可跨多个页面传值
    ViewState只是在当前page内有效,关了当前页,再重新打开,ViewState就没了的。为了在 HTTP 请求间保留这些值,ASP.NET 服务器控件使用该属性(它是 StateBag 类的实例)来存储属性值。在处理后续请求时,该值随即作为变量传递给 HTML 隐藏输入元素。
      

  2.   

    viewstate是存储在客户端的隐藏信息,当服务器接受请求回传时可以将viewstate内容回传到页面中,,其机制可自动实现,控件的属性中都有viewstate,只需将其设置为true即可,就可以保存控件信息. 
    session是客户端会话,具体应用举例:比如你进入淘宝网,购物,当你选中欲购买的产品时,你点下一页按钮进入另外另一个页,那么如何存储这些表格信息呢,就可以用到session(tableid)了,这样session就可以存储你前一页选的产品表格了,然后这一页又选了哪些产品,你可以把这些新的记录集再加入老的表格中,最后产生新表,并存储在session中,Session变量又可被下一页面调用. 
    最后在用户购买单中就可以调用最终session,产生表格,提交购物.
      

  3.   

    viewstate当前页面内部才能调用的传值方法    当asp.net页面加载的时候 你可以发现页面源码里面生成了一大堆不属于HTML的东西 那就是viewstate
    session是可以在整个客户端保存来传值   当是在同一个页面使用传值的时候建议使用viewstate 使用方法和session差不多
    自己做个小例子  看什么时候什么地方可以调用存在viewstate和session中的属性  这样你就更能理解了
      

  4.   


    viewstate是存储在客户端的隐藏信息,当服务器接受请求回传时可以将viewstate内容回传到页面中,,其机制可自动实现,控件的属性中都有viewstate,只需将其设置为true即可,就可以保存控件信息. 
    session是客户端会话,具体应用举例:比如你进入淘宝网,购物,当你选中欲购买的产品时,你点下一页按钮进入另外另一个页,那么如何存储这些表格信息呢,就可以用到session(tableid)了,这样session就可以存储你前一页选的产品表格了…
      

  5.   

    同意二楼,你可以把它理解成静态变量,也可以理解成单页的Session。
      

  6.   

    最好不用viewstate,如果一些没关尽来的东东用这个viewstate会产生很多垃圾数据,,,
      

  7.   

    同意二楼和三楼的看法,但是不必要的情况下不要ViewState,因为会产生很多无用的堆积信息。