我想扔在一起的屏幕刮板,並繼續獲取無效的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