【发布时间】:2009-10-10 09:56:12
【问题描述】:
如何在 asp.net 中最小化页面的视图状态大小? 请帮忙。
【问题讨论】:
如何在 asp.net 中最小化页面的视图状态大小? 请帮忙。
【问题讨论】:
你有几个选项来减少 ViewState:
【讨论】:
大多数观点在其他答案中突出显示。这里有一个可能会有所帮助:
减少服务器控件(例如 web/html 控件)的数量,尤其是那些您不需要的控件。请改用简单的 HTML 标记。
我见过太多多余的表格/行/单元格 Web 控件的案例,而普通的
| 都可以。
【讨论】: |
您不能最小化 ViewState 的大小。它是序列化/反序列化的 ASP.NET。尽管您可以选择性地为不需要的控件禁用 ViewState。
【讨论】:
我选择将服务器上的视图状态保存在数据库本身中,并且不允许它在 HTML 中传递给客户端,这会增加页面大小。您可以扩展 HiddenFieldPageStatePersister 并解决此问题。如果您愿意,我已经写了一篇详细的文章...
【讨论】:
您可以在服务器上打开压缩以最小化通过网络传输的数据大小,或者将 viewState 保存到磁盘而不将其发送到客户端。
【讨论】:
protected override PageStatePersister PageStatePersister
{
get
{
return new SessionPageStatePersister(this);
}
}
在生成大视图状态值的页面后面的代码中添加上述代码。这允许将视图状态存储在会话中。现在应该只添加视图状态的键。
【讨论】: