asp.net – Viewstate vs Postback
我想回答我自己的问题,但我想确保我正确理解.我最初认为当用户在表单中提供值时,在回发时,值是作为Viewstate的一部分提交的,因为TextBox.Text是viewstate的一部分.现在我发现用户提供的值实际上不会在OnLoad事件之后应用于控件.这使我感到困惑,因为我认为viewstate在OnLoad之前(或调用Controls.Add()时)被加载到控件中.我已经浏览了页面上的文档并控制了生命周期几次,我现在才意识到处理回发数据有不同的步骤(这一步没有出现在很多文档中:(
1)因此,在OnLoad事件之后应用用户在字段中输入的值的回发数据,并且在OnLoad事件之前应用Viewstate数据? 2)基本上所有这些意味着在回发时服务器获取TextBox.Text属性的两个值,Viewstate中的属性,就像前一个请求中的“旧”值,以及用户提供的新值.表格? 3).net框架是否应用与Viewstate相同的回发数据,因为它通过它的ID属性找到适当的控件?这很重要,因为我正在动态创建控件,我甚至可能有超时更改结构的表单,需要考虑如何处理ID.到目前为止,我还没有设置ID属性,一切正常,但事情可能会更复杂. 4)在客户端根本没有修改viewstate数据吗?或者视图状态与服务器在先前请求中发送的内容相同(假设没有篡改)?我的印象曾经是服务器将所有控件属性编码到视图状态中,而在客户端提交表单时,视图状态字段被解码,修改,编码并提交给服务器并进行修改.我假设有一堆javascript为我做这一切.现在我觉得我错了.相反,Viewstate似乎永远不会在客户端更改,并且所有客户端更改都在回发数据中,以便下一个请求服务器加载视图状态,加载回发,并在下一个响应中提供新的更新视图状态? 解决方法
1)两者都在Load之前加载
2)基本上,是的 3)首先应用ViewState,然后应用Post Data 引用Scott Mitchell(见下文)
4)除非你在框外做某事,否则ViewState永远不会被修改为客户端. “ViewState”是一个HTML表单字段,在服务器端进行处理. 这里有一些来自Understanding ASP.NET View State by Scott Mitchell的图片可能会对你有所帮助. alt text http://i.msdn.microsoft.com/ms972976.viewstate_fig02%28en-us,MSDN.10%29.gif 奖金阅读材料:http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在asp.Net中的脚本标签上使用runat =“server”
- asp.net-mvc – SignInManager.PasswordSignInAsync对我说谎
- asp.net-mvc – Windows 8 VS2012 IISExpress Windows身份验
- ASP.NET变量范围
- asp.net – 如何确定以下默认Web配置值?
- asp.net-mvc-3 – 如何打印未映射的值
- asp.net – 在方法名称上过滤log4net – 无法得到它
- asp.net – Xdocument不打印声明
- asp.net-mvc – 从部分视图问题返回模型
- “ASP.NET”错误:拒绝访问远程服务器,因为不存在登录映射
- asp.net-mvc – ajax链接被误处理
- asp.net – 在IIS上运行Python和Django
- asp.net-mvc – ASP MVC.NET3本地IIS7对象引用错
- asp.net-mvc – 在ASP.NET MVC控制器结果中设置H
- 登录的用户无效.Memership服务. asp.net
- 使用ASP.Net和C#计算WebSite中的访问者数量
- asp.net – 在使用母版页时,如何为标记分配特定的
- asp.net-mvc – 将ajax actionlink转换为引导按钮
- asp.net – 使用HTML’readonly =“readonly”’
- asp.net – ReportViewer – 隐藏PDF导出