snowfox373 2007-12-9 22:06
ASP.NET 2.0功能扩展:跨页提交
ASP.NET 2.0,它的功能有所扩展,能够允许跨页提交。标准HTML表单(form元素)允许你向另外一个页面或者应用程序传递和发送数据信息,方法是使用表单元素。在ASP.NET 1.x中,网页则利用投递机制,把页面数据提交给该页本身。下面就让我们来探讨这个新特性:
Y3R+Mr4{
k8A3Z6Y9q~ T
传统办法
8w NB8A)Don'R
BgrUSs6O8`
为了便于比较,我们来回顾网页传递数据的老方法。HTML的表格元素有一个action(动作)属性,用来指定服务器端哪项资源(所谓资源,是指一个网页、一段脚本、程序等)来处理这些提交的数据。下面的代码便是一个样例。[code]<html> H&S-t:e5eS'D
<head><title>Sample HTML form</title></head> )k`x$n(Q#N
K,fH
<body>
/@T#H*_6H7X:{uV
<form name="frmSample" method="post" action="target_url">
N!BB9ie4|
<input type="text" name="fullname" id="fullname" />
-c
~ [@B"ff"D
<input type="button" name="Submit" value="submit" /> eB[8lK6kF,E,s
</form>
*y;M7~3hi,tF
</body>$U$N9@!^2{3_ \&x#W
</html> [/code] 在文本域(名字是fullname)中输入的值将被提交给表单元素的action属性指定的页面或者程序。对于ASP.NET开发者,即使曾经用过标准HTML表单,也是极不多见的。
0_l1OW8^O
&ij'X],`b"w]
q4H*?
ASP.NET开发者面对要从一个网页向另一个网页传递数据信息的任务时,方法选择的余地是异常广阔的。它们包括会话变量(session variables)、cookies、querystring 变量、caching(网页缓存),甚至Server.Transfer方法,但是ASP.NET 2.0还提供了另外一种选择。w3L
`5Ic,XW;X4[
;Px.Rjj4Meb
ASP.NET 2.0提供的又一办法
.m Ga(b{p8qs
MtD"g@-s:p4Z&zY~
在设计ASP.NET 2.0的时候,微软认识到了在网页间交叉传递数据的需求。有了这个意识之后,就为ASP.NET的button(按钮)控件增加了一项PostBackUrl属性。它允许你在用户提交的时候,指明这张表单和上面的数据送往何方(也就是由PostBackUrl属性指定的URL值确定)。一般来讲,跨页传递是客户端在后台使用JavaScript进行传送的过程。[code]<%@ Page language="vb" %>
d/YD e
k
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 'zY2rJM8mT
V"a
<html><head> $Y0B;bt,Dk
<title>Cross Postback Example</title>