2

我知道 ASP.NET 不允许禁用控制状态。

有人知道为什么吗?我用谷歌搜索了很多,但只看到这是不可能的,但找不到“为什么?”

欢迎对此提出任何想法!

PS 在我的特殊情况下,我需要将很多项目放入一个不会用于服务器端事件的下拉列表中。我需要编写自己的自定义 DropDownList ... :(

4

1 回答 1

3

控制状态与视图状态分离,因此可以在不破坏关键功能的情况下禁用视图状态。理论上,控件状态应该包含服务器控件正常运行所需的一切。

ASP.NET 2.0 版中引入的控件状态类似于视图状态,但在功能上独立于视图状态。页面开发人员可以禁用页面的视图状态或单独的性能控制。但是,不能禁用控制状态。控件状态旨在存储控件的基本数据(例如分页器控件的页码),这些数据必须在回发时可用,以使控件即使在禁用视图状态时也能正常工作。

http://msdn.microsoft.com/en-us/library/1whwt1k7(v=vs.100).aspx

然而...... ASP.Net 在做出这种区分方面做得很差,尽管强制控制状态,禁用视图状态确实会破坏某些服务器控制。

在您的情况下,禁用下拉列表的视图状态应该会删除绝大多数状态数据;对于禁用视图状态的下拉菜单,控件状态通常非常小。我建议在编写自己的之前先尝试一下。

于 2013-02-01T05:28:24.950 回答