在提供页面之前确定ASP.NET页面视图状态的大小

slo*_*ife 5 asp.net viewstate

我可以编写什么ASP.NET页面生命周期事件来确定发送的视图状态的大小?此外,是否可以在不解析渲染的HTML(如页面对象上的属性)的情况下确定大小,还是解析唯一的方法?

我想要做的是记录尺寸,特别是如果它们超过某个阈值.

Ari*_*tos 4

您可以继续执行将写入视图状态的函数SavePageStateToPersistenceMedium。这个函数也用于压缩视图状态......

例如...

public abstract class BasePage : System.Web.UI.Page
{
    private ObjectStateFormatter _formatter = new ObjectStateFormatter();

    protected override void SavePageStateToPersistenceMedium(object viewState)
    {
        MemoryStream ms = new MemoryStream();    
        _formatter.Serialize(ms, viewState);    
        byte[] viewStateArray = ms.ToArray();

        ....

    }
}
Run Code Online (Sandbox Code Playgroud)

一些参考。
http://www.codeproject.com/KB/viewstate/ViewStateCompression.aspx
http://forums.asp.net/p/1139883/3836512.aspx
http://www.dotnetcurry.com/ShowArticle.aspx?ID= 67&AspxAutoDetectCookieSupport=1