Tôi nghĩ rằng, sau khi xem xét cơ chế Reflector'd cho Trang và làm thế nào nó xử lý ViewState, mà bạn sẽ cần phải đi đến một HttpModule để có được những gì bạn đang sau đó, nếu bạn muốn kích thước viewstate thực tế trên trang.
Tôi nói điều này bởi vì bạn sẽ phải lấy chuỗi chữ từ trang sau khi nó được hiển thị, điều này không xảy ra cho đến sau khi tất cả các sự kiện do người dùng xác định đã kích hoạt. Xem đầu ra phản xạ bên dưới (một phần):
this.PerformPreRenderComplete();
if (context.TraceIsEnabled)
{
this.Trace.Write("aspx.page", "End PreRenderComplete");
}
if (context.TraceIsEnabled)
{
this.BuildPageProfileTree(this.EnableViewState);
this.Trace.Write("aspx.page", "Begin SaveState");
}
if (EtwTrace.IsTraceEnabled(5, 4))
{
EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_SAVE_VIEWSTATE_ENTER, this._context.WorkerRequest);
}
this.SaveAllState();
if (EtwTrace.IsTraceEnabled(5, 4))
{
EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_SAVE_VIEWSTATE_LEAVE, this._context.WorkerRequest);
}
if (context.TraceIsEnabled)
{
this.Trace.Write("aspx.page", "End SaveState");
this.Trace.Write("aspx.page", "Begin SaveStateComplete");
}
this.OnSaveStateComplete(EventArgs.Empty);
if (context.TraceIsEnabled)
{
this.Trace.Write("aspx.page", "End SaveStateComplete");
this.Trace.Write("aspx.page", "Begin Render");
}
if (EtwTrace.IsTraceEnabled(5, 4))
{
EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_RENDER_ENTER, this._context.WorkerRequest);
}
if (str != null)
{
this.ExportWebPart(str);
}
else
{
this.RenderControl(this.CreateHtmlTextWriter(this.Response.Output));
}
if (EtwTrace.IsTraceEnabled(5, 4))
{
EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_RENDER_LEAVE, this._context.WorkerRequest);
}
if (context.TraceIsEnabled)
{
this.Trace.Write("aspx.page", "End Render");
}
this.CheckRemainingAsyncTasks(false);
Nếu không, bạn có thể lấy túi bầu và lặp lại nội dung của nó. Điều đó cũng hoạt động tốt, tùy thuộc vào chi tiết bạn muốn đi vào.
Tôi đã sử dụng javascript và đăng nhập theo cách đó, nhưng @Aristos đã có câu trả lời cho chuyến tàu tư tưởng ban đầu của tôi. – slolife