首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 软件频道>ASP .NET中维持ViewState研究

ASP .NET中维持ViewState研究

2005-08-24 15:58作者:Ansel出处:博客堂责任编辑:方舟

天极软件专题专区精选     到天极软件“读编交流区”畅所欲言
Google专区 POPO专区 QQ专区 QQ挂机 了解Web2.0
Flash MX 视频教程 Photoshop视频教程 网页设计视频教程 照片处理数字暗房
PPT动画演示教程 Excel动画教程集 Word动画演示教程 Windows Vista专区
特洛伊木马专区 黑客知识教程专区 防火墙应用专区 注册表应用专区
Windows API开发专区 网络编程专区 VB数据库编程专区 图像处理与多媒体编程

  在传统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)。

关注此文的读者还看过:

返回软件频道首页

共1页。 1
  • 1.ASP .NET中维持ViewState研究

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络