我想扔在一起的屏幕刮板,并继续获取无效的viewstate问题。在System.Net.Web.WebClient数据下载或System.Text.UTF8Encoding.Default.GetString调用期间,似乎将WebClient DownloadData调用返回的字节数组转换为一个字符串 - 即正在转换匹配url字符代码的字符串。Url编码的字符,ViewState和byte []数组哦我的
即
地址编码的字符的字符串等%2B被转换到它们的正常字符(+为%2B)。
这是在WebClient类中发生的吗?它是我将字节数组转换为字符串的方式吗?
编辑:根据建议,我试图改变从WebClient类的DownloadString呼叫
并且生成的字符串转换了字符代码到特定的字符所以会出现Web客户端是罪魁祸首。编号2:
已解决。通过调用System.Web.HttpUtility.UrlEncode,我可以在将后续请求中的viewstate字符串备份到服务器之前将+转换回%2B。我仍然不知道问题发生的位置和原因,但服务器期待包含...%2B ...的视图状态字符串,并且正在... + ...并确定视图状态无效并抛出异常。 Kudos to Jon & Henk强迫我重新思考我的假设。
也许张贴代码很多更多的环境?我很难想象WebClient如何能够触发ViewState错误。 – 2010-09-08 21:24:39