禁用整页的视图状态

时间:2010-12-31 13:06:32

标签: asp.net vb.net

是否有可能使整个页面的viewstate为false,包括所有控件。我的意思是我不想为所有控件设置enableviewstate =“false”..在aspx页面的页面指令中我有make enableviewstate =“false”但仍启用了所有控件的viewstate ..

EnableViewState =“False”实际上在Page指令中有效。

3 个答案:

答案 0 :(得分:1)

您是否尝试过在web.config中将enableViewState设置为false?像这样:

<pages enableViewState="false" />

答案 1 :(得分:1)

在ASP.Net 4.0中,其中一项新功能是对页面及其控件的ViewState进行更多控制。

在ASP.Net 3.5及更早版本中,如果明确设置了Page的ViewState,则忽略ChildControls的ViewState。因此,如果为UserControl设置EnableViewState =“false”,如果Page.EnableViewState设置为true,它仍将使用ViewState。

ASP.Net 4.0引入了一个新的 ViewStateMode -Property,包含3个值:已启用已禁用继承

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" ViewStateMode="Disabled" Inherits="_Default" %>

因此,如果为子控件设置ViewStateMode为Inherit,它们将继承页面的行为。如果将其设置为“已启用”或“已禁用”,则它们将按您的要求进行操作。

有关详细信息,请参阅:http://www.dotnetcurry.com/ShowArticle.aspx?ID=478&AspxAutoDetectCookieSupport=1

即使它没有直接回答您的问题,为什么会忽略页面中的EnableViewState值,但它可能会告诉您如何在ASP.Net 4.0中执行此操作或在何处查找问题。也许您在更高级别设置EnableViewState =“true”,如MasterPage?

答案 2 :(得分:0)

This(有点过时)但仍然非常相关的文章关于ViewState及其运作方式。

Here是关于MSDN的另一篇好文章。

我建议您在决定ViewState没有关闭之前阅读并理解两者。