ViewStateって結局ナニよ?
ViewStateは結局のところ、それで保持することにしたデータオブジェクトをXMLにシリアル化してBASE64でASCII化したものをHTMLのhidden要素に格納しているもの。
参照:MSDN(ASP.NETビューステート)、「ビューステートの概要」だけでも読むと良い
参照:熱燗ロックのブログ(ViewStateによるコントロールのプロパティ値復元の仕組み)
参照:MSDN(10 行でズバリ !! ViewState の利用 (C#))
XMLにシリアル化してBASE64エンコードって…
つまり、ちょっとしたデータ入れても結構なデータサイズ(文字数)になるってことだよねー。
なので、無頓着にコードを書いているとビューステートが肥大化していろいろ問題になります。
- HTTPの転送量が増える
上り・下りの両方にViewStateのデータが含まれるので、その分は確実に増えます。 - ViewStateが起因するエラーが発生するようになります
- BASE64デコード
以下、調査中…