为什么asp.net在最终输出的代码中,老是会有一大串莫名其妙的乱七八糟字符串?比如:
value="/wEPDwUJNjE5MDk0OTc0D2QWAmYPZBYCAgMQZGQWBAIBD2QWCAIDDxYCHgdWaXNpYmxlaGQCBQ8WAh4EVGV4dAVmPGEgaHJlZj0idXJsLmFzcHg/dXJsPXd3dy5pZ3hlLmNvbS5jbiIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJpbWFnZXMvc2hvdy90b3AwMDEuZ2lmIiBhbHQ9IiIgLz48L2E+ZAIHDxYCHgtfIUl0ZW1Db3VudAIQFiBmD2QWAmYPFQMmaHR0cDovL3d3dy56aHVhbnlld2FuamlhLmNvbS9SYW5rLmh0bWwDcmVkDOa4uOaIj+aOkuihjGQCAQ9kFgJmDxUDKmh0dHA6Ly93d3cuemh1YW55ZXdhbmppYS5jb20vR2FtZVNpdGUuaHRtbARibHVlDOa4uOaIj+WumOe9kWQCAg9kFgJmDxUDJ2h0dHA6Ly93d3cuemh1YW55ZXdhbmppYS5jb20vVG9vbHMuaHRtbANyZWQM5Zyo57q/5bel5YW3ZAIDD2QWAmYPFQMtaHR0cDovL3d3dy56aHVhbnlld2FuamlhLmNvbS9OZXdzLjUuTGlzdC5odG1sBGJsdWUM572R5ri45oqA5pyvZAIED2QWAmYPFQMpaHR0cDovL3d3dy56aHVhbnlld2FuamlhLmNvbS9HYW1lQXBwLmh0bWwDcmVkD+......以上我只是摘了一部分,最长的居然有以上的五六倍长度。短的也比如:
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBALx1senCALs0bLrBgKM54rGBgLM9PumD39mHYQY6HDd3FJNFcTt+fm56zBC" />不知道这是为什么?
哪些情况下会产生这种“乱码”?
如何解决?谢谢!

解决方案 »

  1.   


    老妖你试着新建一个asp.net页面就会运行也会出现这个!这个就是asp.net独有的!!
      

  2.   

    这个是数据控件绑定数据后 自动添加的加密码。 自己手写就不会出现了。
    gridview绑定数据后出现最多的、 你可以看看!!
      

  3.   

    看下来比较长那段应该是ViewState,如果页面没有禁用,这段乱码是不可少的,用于维护页面回发后听控件值状态。尤其是数据列表页,不适当的列表控件用法常常带有大量的ViewState。像当当网那样没有的,就是在没有表单提交(或者使用ajax提交)的页面删除了<form runat="server"></form>标签,这个前几天刚有人讨论过。<input type="hidden" name="__EVENTVALIDATION" 这段是用于验证控件id的。
      

  4.   

    viewstate 属于base64编码。通常不是复杂的交互页面可以关闭viewstate的输出,或把viewstate放到服务器上存储
      

  5.   

    视图状态..<form runat="server">删除就没有了..但按钮等部分服务器端控件不能使用..可以trace=true看下viewstate有多少字节...页面上没有乱码不等于viewstate就是零字节了...