【发布时间】:2009-07-31 07:26:05
【问题描述】:
我正在 ASP.NET 2.0 中构建一个应用程序,视图状态的价值是巨大的:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTExNz...
该值包含 535,000 个字符。这是正常的吗?我怎样才能让它变小?
【问题讨论】:
我正在 ASP.NET 2.0 中构建一个应用程序,视图状态的价值是巨大的:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTExNz...
该值包含 535,000 个字符。这是正常的吗?我怎样才能让它变小?
【问题讨论】:
查看您的网页的enabling ASP.NET tracing - 这将告诉您哪些控件在视图状态下存储了多少。然后,您可以去禁用您知道未使用的控件的视图状态。
【讨论】:
ViewState 会让你变得丑陋。基本上我会说问题在于 ViewState 默认情况下在所有内容上都启用,并且很多东西不需要它。最基本的例子是 Label 对象。
尝试禁用您认为不必要的 ViewState(EnableViewState 是您要查找的属性)。
【讨论】:
<asp:Label ID="productName" EnableViewState="false" Text="[Product Name]" runat="server" />
如果您编写一些代码,您可以将视图状态存储在您的服务器中,而不是通过网络发送它以进行往返。您也可以压缩它以节省空间/带宽和加载时间。
Here 是我前段时间写的。
【讨论】: