我正在从经典ASP转向ASP.NET,并且遇到了许多人已经知道的"viewstate".我可能会按照我的假设跳枪,但看起来非常麻烦.我过去开发了许多ASP表单,从未遇到过保持状态的问题.还有其他方法或者我将不得不在ASP.NET中学习这个Viewstate的东西吗?我使用Visual Studio 2008,VB.NET作为语言代码和Framework v3.5与SQL Server 2005.
你不必.查看MVC框架.它消除了ViewState并且作为旧的ASP工作(至少从这个角度来看).
这一系列帖子必须阅读才能理解ViewState
我禁用它并在Page_Init而不是Load中完成我的大部分工作(由于ControlState,值仍然保持不变).这个设置对我来说很好.
ViewState是可选的,但很有帮助.ViewState是什么,是SERVER SIDE上的控件上发生的所有更改.因此,如果您要将文本分配给标签,并且希望该文本保持不变而无需在每次回发时重新分配,那么您将需要保留该文本.另一个我总是离开ViewState的例子是任何数据绑定.
That said, there are times when it's helpful to turn ViewState off for that same reason. For example, the one place where I always turn ViewState off is a MESSAGE label. That way, when I have to print out a message to the user (one which should only appear once and then go away) I just add the text to the label and then forget about it. During the next PostBack, the label will automatically revert to the text which is found in the ASPX declaration for that control (in this case an empty string).
现在,请注意,这与表单集合无关,表单集合是在PostBack期间发布到IIS的值.表单集合将用户输入的值发送到表单元素(文本框,复选框,下拉列表等).这些.NET将填充到适当的位置 - 这将在ViewState处理完毕后发生.
这样,如果您向客户端发送带有短语"hi there"的文本框,则用户将其更改为"See ya",然后提交表单,在Page_Load事件触发时文本框将具有的文本框为在TEXT属性中"查看ya".