您可以通过保持物体的ViewState在Web窗体节省了大量的编码。
维持ViewState
当一个表单在传统的ASP提交,所有的表单值都会被清空。 假设你已经提交形式大量的信息和服务器返回一个错误。 你将不得不回去的形式和更正信息。 单击后退按钮,会发生什么.......所有的表单值都会被清空,你将不得不从头再来! 该网站并没有维持你的ViewState。
当一种形式,ASP .NET被提交,该形式在浏览器窗口连同所有表单值再次出现。 怎么来的? 这是因为ASP .NET维持你的浏览状态。 ViewState的指示何时提交到服务器页面的状态。 状态是通过设置在每个页面上以<形式RUNAT =“server”>控件隐藏字段定义。 来源可能是这个样子:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
.....some code
</form>
维持ViewState是ASP.NET Web窗体的默认设置。 如果你想不维护ViewState中,包括指令<%@页的EnableViewState =“假”%>在一个.aspx页面的顶部或属性的EnableViewState =“假”添加到任何控制。
请看下面的.aspx文件。 它体现了"old"的方式来做到这一点。 当你点击提交按钮,表单值就会消失:
例
<html>
<body>
<form action="demo_classicasp.aspx" method="post">
Your name: <input type="text" name="fname" size="20">
<input type="submit" value="Submit">
</form>
<%
dim fname
fname=Request.Form("fname")
If fname<>"" Then
Response.Write("Hello " & fname & "!")
End If
%>
</body>
</html>
显示范例» 这是新的ASP .NET方式。 当你点击提交按钮,表单值不会消失:
例
点击的例子的右视图帧源地看到,ASP .NET又增加了一个隐藏字段的形式来维持的ViewState
<script runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Hello " & txt1.Text & "!"
End Sub
</script>
<html>
<body>
<form runat="server">
Your name: <asp:TextBox id="txt1" runat="server" />
<asp:Button OnClick="submit" Text="Submit" runat="server" />
<p><asp:Label id="lbl1" runat="server" /></p>
</form>
</body>
</html>
显示范例»