我是一名PHP开发人员,现在需要处理ASP.net项目,但我不明白为什么每个页面都要用表单包裹起来。这对我来说毫无意义。
此外,这些隐藏的输入字段是什么意思,特别是“View State”?
此外,这些隐藏的输入字段是什么意思,特别是“View State”?
ASP.Net致力于让程序员可以假装Web是一个有状态的平台,并且它的行为类似于桌面应用程序。ViewState基本上是页面生成时状态的序列化块。当页面被提交回服务器时,服务器端模型将被初始化为ViewState中的值,然后应用来自提交表单的新值。
成为一个优秀的ASP.Net程序员的一部分是学会何时使用ViewState以及何时不使用,因为默认情况下在每个地方都使用ViewState会导致下载的页面存在大量臃肿的内容。
<form>
元素中,因为整个框架都围绕POST命令展开。Button.OnClick
、TextBox.OnChanged
) - 框架使用隐藏字段和生成的javascript将这些连接起来。生成的javascript通常设置几个隐藏字段值来指示(例如)哪个控件触发了post和命令参数(如果适用),然后提交表单。
ViewState
是框架用于序列化客户端状态的技术。这是一种替代大量使用会话的方法,通过以较低的服务器内存占用为代价,交换更大的HTML负载。ASP.NET(aspx页面)中的所有内容都是基于数据提交工作的。
这意味着,任何你在服务器端执行的操作都将导致“回传”到自身。回传包含诸如“刚刚发生了什么”以及一些信息,有助于网页维护状态(传统上网页不具备此功能)。视图状态是维护状态的任务之一。
如果你不喜欢aspx页面试图将网页转换为类似表单的有状态应用程序的方式,可以尝试使用ASP.NET MVC框架,让网页按照本来的意图工作!
ASP.NET WebForms引擎在无状态的HTTP上创建了有状态的抽象。
关键对象是服务器页面。控件触发事件并在服务器端进行处理。控件在请求之间维护其状态(通常是输入值)。
每次单击服务器控件时,都会向服务器发送一个“回发”请求。ViewState实际上包含告诉服务器哪个控件触发了事件的数据。这就是为什么总是有一个表单(不允许使用多个表单)的原因。