【问题标题】:Disabling view state on specific controls禁用特定控件的视图状态
【发布时间】:2011-06-19 14:29:49
【问题描述】:

我即将部署我的网站,但在运行一些测试后,我发现每个页面上的视图状态都太大了,这导致一个服务器进程占用了大量内存。

我想禁用控件上的视图状态,我可以禁用它,EnableViewState="false",但在我在控件上添加它之前,我有点困惑我可以禁用哪些控件。

谁能告诉我控件禁用视图状态的条件是什么?

一个例子:

<a id="A5" href="~/" runat="server">
    <img src="~/images/logo.png" runat="server" />
</a>

我应该禁用这两个控件的视图状态吗?它们永远不会改变,本质上是静态资源。

【问题讨论】:

  • 在仅内容页面上,我在页面级别禁用它。在您的情况下,是否只有特定页面具有较大的 ViewState,例如具有网格的页面?

标签: asp.net viewstate


【解决方案1】:

是的,您可以安全地在图像和链接等控件上禁用它。

我将从顶级城镇开始,即在页面级别。通常,当我完成网站工作后,我会首先在页面级别禁用所有纯内容页面上的 ViewState。

然后,我将查看工作表单/应用程序页面并在本地禁用链接/图像控件。任何不需要在回发中保留其状态的东西都是候选对象。 GridViews 是 WRT ViewState 大小的常见违规者,我通常倾向于自己使用 ListViews。我特别避免在网格中嵌套任何类型的控件 - 从我开始设计 UI 的那一刻起我就牢记这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多