|
|
| ASP .NET中维持ViewState研究 |
| 作者:不详 来源:不详 发布时间:2006-8-14 9:36:02 发布人:chinazhan |
减小字体
增大字体
在传统ASP中,当一个表单被提交的时候所有表单值都被清除。假设你提交了一个有很多信息的表单并且服务器返回一个错误。你不得不返回到表单并更正信息。你点击返回按钮,但是发生了什么……。所有表单值被清除了,你将不得不从头开始!站点没有维持你的ViewState。 在ASP .net中提交一个表单的时候,表单与所有的表单值一起再现于浏览器窗口。怎么会这样?这是因为ASP .NET维持你的ViewState。ViewState指明页面被提交到服务器时的状态。该状态是通过在每个带有<form runat="server">控件的页面中安置一个隐含域来定义的。源文件可能看起来象是这样: <form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....some code </form> 对ASP.NET Web表单维持ViewState是默认设置。 如果你想要不维持ViewState,可以在.aspx页面顶部包含指示:<%@ Page EnableViewState="false" %>,或者对任何控件加入属性:EnableViewState="false"。 请看下面的.aspx文件。它演示了“老方式“的做法。当你点击提交按钮,表单值将会消失: <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方式。当你点击提交按钮的时候,表单值将不消失: <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> (在浏览器中选择查看源文件,会看到ASP .NET已经在表单中添加了一个隐含域来维持ViewState)。 做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。
|
| |
|
[]
[返回上一页]
[打 印]
[收 藏] |
|
| ∷相关文章评论∷ (评论内容只代表网友观点,与本站立场无关!) [更多评论...] |
|
|