1

我开发了一个继承自CompositeDataBoundControl和的服务器控件INamingContainer。它有 2 个文本框和 1 个小图像。

但是在GridView其 ViewState 中渲染时,大小最多为 500 字节。它也有大约 20 个属性,但我这里没有使用 ViewState。

我只使用get;set;并在回发时再次绑定它。

现在我想知道如何减小这个 ViewState 大小以及如何检查这个 ViewState 。如果我可以检查 ViewState 的值,这将有助于解决问题。

4

2 回答 2

1

将 ViewState 粘贴到base-64 解码器中。我总是觉得看到什么占用了空间是很有启发性的。

请记住, ViewState 字段还包括ControlState

它有 2 个文本框和 1 个小图像。

一些控件在没有 ViewState 的情况下可以很好地运行,因为它们在 HTTP 请求中持续存在。ATextBox是显式禁用 ViewState 的理想选择,因为它的值始终作为请求的一部分回传到服务器。

图像也是禁用 ViewState 的理想选择,除非计算 URL 需要处理时间(例如,数据库调用与静态分配)。

但是在 GridView 中渲染时...

AGridView几乎肯定会添加到 ViewState 本身。你在考虑这个吗?

于 2013-03-30T01:31:26.240 回答
0

你可以禁用视图状态

this.EnableViewState = false;

您还可以检查此链接Disable View State for a Page以禁用页面的视图状态。

如果您想检查视图状态,可以使用ASP.NET ViewState Helper或 Fiddler 等工具来分析视图状态。

于 2013-03-30T00:55:24.247 回答