为什么我的@page enableviewstate不在web.config中覆盖页面的EnableViewsate?

Jef*_*tin 7 asp.net viewstate

我想为几乎所有的页面禁用viewstate,我已经在web.config中使用了这个元素.

在专门使用viewstate的页面上,我使用了EnableViewState = true.但是页面无法正常工作,依赖于viewstate的下拉列表未在回发中填充.

为了尝试找到一个模式,我可以在web.config设置为true时在页面级别专门禁用viewstate,但是我似乎无法执行web.config设置为false的反向操作.页面设置为true.

关于其他可能相互冲突的想法?

更新:我创建了一个新的空白项目来试验这个,显然要么ASP.NET被破坏了,要么就是不打算以这种方式工作.如果我在web.config中启用了FindState = false,则无法在页面级别将其重新打开.但是,如果我将其设置为true,我可以在页面级别将其关闭.

更新更新:我让它在空白项目中工作.不完全确定改变了什么让它突然发挥作用.我现在将web.config设置为false并将页面设置为true,并且页面通过回发保留viewstate.这意味着它是我更大,更复杂的项目所特有的.

Jef*_*tin 4

所以答案是,如果您更改页面上的母版页,而不将 MasterPage 的 EnableViewState 属性设置为页面的 EnableViewState,那么您会得到问题中描述的行为。

有一个 HttpModule,它根据应用程序其他部分设置的某些标准来更改 MasterPage。通过在母版页的 OnInit 属性中设置 MasterPage.EnableViewState = Page.EnableViewState,我能够恢复预期的行为。