我们即将开始重建我们的一个 ASP.NET 项目,我想尝试在不打开 viestate 的情况下开发它(在 web.config 中禁用)。
我知道 viewstate 的优点和缺点,一般来说,它与控制状态相比跟踪了什么,但是我想知道:
原理开发过程有什么区别?即,您对 Page_Load 等的结构有何不同?
标准 ASP.NET 控件中是否有任何功能在没有打开视图状态的情况下真的无法工作?
另外,有没有关于使用和不使用 VS 的工作流程差异的详细文章?
我们即将开始重建我们的一个 ASP.NET 项目,我想尝试在不打开 viestate 的情况下开发它(在 web.config 中禁用)。
我知道 viewstate 的优点和缺点,一般来说,它与控制状态相比跟踪了什么,但是我想知道:
原理开发过程有什么区别?即,您对 Page_Load 等的结构有何不同?
标准 ASP.NET 控件中是否有任何功能在没有打开视图状态的情况下真的无法工作?
另外,有没有关于使用和不使用 VS 的工作流程差异的详细文章?
如果您反对视图状态 - 为什么不尝试使用 MVC 框架?这可能是一个更容易的调整。
我禁用了我的项目的视图状态。我使用 scatter/gather 方法从 aspx 页面向/从我的数据访问对象填充和获取值。它比使用视图状态更干净、更简单。
大多数控件(如 TextBoxes 和 DropDownLists)在没有视图状态的情况下都能正常运行。
我不知道任何开发过程问题,除了通过代码创建或修改的任何控件或属性在没有视图状态的情况下不会持续存在,因此您必须在回发时重新创建/修改它们。
我有一些带有大视图状态的非常大的页面。我做了一个实验来禁用整个项目的视图状态,并且发现(起初)没有明显的功能损失。然后在测试中出现了一些小问题,所以我们恢复了它。但是我们的 300 页 Web 应用程序在没有视图状态的情况下可能有 99% 的功能。我们遇到的问题集中在数据网格上——主要是分页,动态创建控件和其他由代码修改的东西,因此没有视图状态就不会持续存在。
这是一篇关于 Viewstate 的非常好的文章: