asp.Net   发布时间:2019-10-06  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过asp.net 4.0中的“EnableViewState”和“ViewStateMode”使视野状态最小化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试清理一个早期的ASP.NET WebForms站点,其中启用了ViewState。这是一个性能问题 – 巨大的视野导致明显的提交延迟。但是大多数的表单似乎并不需要ViewState,除了一些复杂的控件&表单数据。即使没有输入控件的窗体也会产生大的viewstates,因为我猜asp.net正在存储有关每个单一服务器控件的各种元数据。但是,可见性状态等都是在代码中控制的,所以我想我可以消除很多。

将EnableViewState =“false”添加到不需要它的每个控件(在页面中并以代码创建)非常繁琐,所以我试图在页面/控件级别禁用它,并且选择性地启用它需要的东西(是的,我意识到这是有风险的,但真正只有几个大的形式和几个模板,如果被解决将会有很大的不同)。

这是我没有得到的。

如果控件或页面的EnableViewState =“false”,它的<%..%>描述符,或在其父页面中创建的标记中,所有内容都会中断,因为在代码中添加的任何ViewState数据都不起作用。所以我似乎能够在控制级别启用它,但是将EnableViewState设置为false,以便在每个容器中进行包装器控件,然后在每个控件级别设置ViewStateMode = true(其中包含该值)。

当我没有得到的时候会发生什么:

ViewStateMode = ViewStateMode.Enabled和
对于包含其他控件的控件,EnableViewState = false。

用于控制。内部控件是否可以使用ViewStateMode启用?基本上,哪个环节在冲突时有最后一个字?

对于每个容器,我希望能够禁用包装器控件中的所有内容,但仍然可以确保:

1)代码工作中的ViewState设置,和

2)默认情况下,所有控件的ViewState都被禁用

3)我可以选择启用ViewState进行子控制。

这似乎是混乱的。如果我在主页面中设置了一个设置为EnableViewState =“false”的包装器控件,但是将子控件设置为ViewStateMode =“Enabled”,则它将中断。根据MS,ViewStateMode应该取代任何外部的ViewState设置,但它似乎不起作用。

解决方法

根据 MSDN article on ViewStateMode,ViewStateMode仅在EnableViewState =“true”时有意义。要实现你想要的,你必须在控件上离开ViewStateMode =“Enabled”,然后将主要的子控件包装在具有ViewStateMode =“Disabled”的asp:占位符中。这样,您仍然可以在代码隐藏中操作ViewState,但是没有子控件将具有ViewState(除了您通过ViewStateMode =“Enabled”显式设置)。

大佬总结

以上是大佬教程为你收集整理的通过asp.net 4.0中的“EnableViewState”和“ViewStateMode”使视野状态最小化全部内容,希望文章能够帮你解决通过asp.net 4.0中的“EnableViewState”和“ViewStateMode”使视野状态最小化所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。