我开发了一个服务器控件,它继承自CompositeDataBoundControl
和INamingContainer
。它有2个TextBoxes和1个小图像。
但是在GridView
中渲染时,其ViewState大小最多为500字节。它也有大约20个属性,但我不在这里使用ViewState。
我只使用get;set;
并在回发时再次绑定它。
现在我想知道如何减少这个ViewState大小以及如何检查这个ViewState。如果我可以检查ViewState的值,那么修复问题会很有帮助。
答案 0 :(得分:1)
将ViewState粘贴到base-64 decoder中。我总是觉得看到占据空间的东西很有启发性。
请注意,ViewState字段还包含ControlState。
它有2个TextBox和1个小图像。
有些控件在没有ViewState的情况下可以很好地运行,因为它们始终存在于HTTP请求中。 TextBox
是明确禁用ViewState的理想选择,因为它的值总是作为请求的一部分发回服务器。
除非计算URL需要处理时间(例如数据库调用与静态分配),否则映像也是禁用ViewState的理想选择。
但是在GridView中渲染时......
GridView
几乎肯定会添加到ViewState本身。你在考虑那个吗?
答案 1 :(得分:0)
您可以使用
禁用视图状态this.EnableViewState = false;
您还可以查看此链接Disable View State for a Page以禁用页面中的视图状态。
如果您想查看视图状态,可以使用ASP.NET ViewState Helper或Fiddler等工具分析视图状态。