为了加快我的网站,我试图禁用viewstate,因为我不认为我在任何地方都使用它。我有一个用户控件在default.aspx中加载(使用LoadControl)的母版页设置。我典型的页面设置将是:Viewstate Disabled - 下拉框不返回值
Main.master -> Default.aspx -> ControlWrapper.ascx -> MyControl.ascx
我已经把的EnableViewState = “假” 在我的Default.aspx页。现在,当我尝试从DropDownList in MyControl.ascx
中读取一个值时,它会在表单发布时返回空白。首先,这是为什么?我以为我应该仍然可以从下拉列表中读取值?
然后我尝试启用该控件上的ViewState,它不起作用。
我也尝试启用Page_Init
事件MyControl.ascx
使用Page.EnableViewState = True;
视图状态,但这也没有帮助。
我想我有些误解了viewstate,请问有人能指点我吗?
p.s我不知道这些信息是否相关,但我在Page_Load事件中动态添加DropDownList的内容。 (想想看,这可能是问题 - 现在就测试一下)。
谢谢。
好吧,我使用.NET 2.0(不好意思忘了OP的说),这是否让任何点有什么区别? – webnoob 2011-04-11 14:49:40
如果我没有记错,不应该有所作为。 ASP.NET 4只是为您提供了一些管理ViewState的选项。你还是会需要它开启自己的网页和控制,如果你希望能够找回您的下拉列表中选择的值。如果我是你,我会默认打开它,并在有意义的地方有选择地关闭它。如果您有性能问题,还可以使用其他方法,例如将ViewState保存到数据库。 – BrandonZeider 2011-04-11 15:06:43
如何将它保存到数据库的工作?你可以为此推荐任何文章吗? – webnoob 2011-04-11 15:20:32