快速业务通道

使用Cross-Page Postback(跨页面提交)在页面间传递数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

在页面间传递数据时,我们有以下几种选择:

1、Query String

    一个很常见的方法,Query String是URL中问号之后的那一部分。其优点在于它是轻量级的,不会给服务器带来任何负担。而它也有几个缺点:传递的信息仅限于简单的字符串,而且必须是合法的URL字符;信息是对用户是可见的,因而存在安全性问题;用户可能会尝试手动修改查询字符串,这可能是程序未预料到或不能防范的;很多浏览器对URL的长度都有所限制(通常为1KB到2KB)。

2、Cookie

    Cookie是创建在客户端硬盘上(或者,如果它们是临时的,则在内存中)的小文件。其优点在于使用时不易被用户察觉,可被程序中每个页面使用,并且可将数据长期保存。但它也有一些与Query String 相同的缺点:仅限于简单的字符串信息;一旦用户找到了相应的文件,它们也是易于访问和阅读的。所以Cookie最好不要用于保存复杂的或私密的信息。

3、Session

    可以在源页面中将数据保存在Session中,然后在目标页面中读取这些数据。注意:将大量的信息存储在Session中会严重影响服务器的性能。

4、Server.Transfer

    要进行服务器端的重定向,可以使用Server.Transfer。因为在服务器端执行,Server.Transfer方法不需要请求另一页面。使用HttpContext,我们可以在目标页面中访问源页面中的数据。其缺点是,浏览器并不了解返回给它的是另外一个页面,它在地址栏中会显示第一个页面的URL,这会让用户陷入混乱,在他们使用书签的时候也会产生麻烦。所以不推荐该方法。

5、其它

    还可以使用缓存(Cache)来存储数据,可在程序的任意处访问缓存。建议仅对那些修改不太频繁但经常使用的数据使用缓存。 另外在某些特定情况下还可以使用Application变量,如统计页面的点击数等。

使用Cross-Page Postback

ASP.NET 2.0中引入了一个新的方法:跨页面提交,即postback触发在另一个页面。这种技术听起来很是简单,但却存在隐患。一不小心,就会导致你创建的页面紧密耦合,难以维护和调试。

支持跨页面提交的机制是一个名为PostBackUrl的属性,该属性由IButtonControl接口定义,实现这个接口的按钮控件包括ImageButton,LinkButton,Button。将PostBackUrl属性值设置为另一个web窗体的名称(即URL),当用户点击按钮时,页面将被提交到新的URL。

看下面这个示例,该示例包括源页面CrossPage1.aspx和目标页面CrossPage2.aspx:


CrossPage1.aspx

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Source Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        FirstName: <asp:TextBox runat="server" ID="txtFirstName"></asp:TextBox>
        <br />
        LastName:&nbsp;<asp:TextBox runat="server" ID="txtLastName"></asp:TextBox>
        <br />
        <asp:Button runat="server" ID="cmdSubmit" PostBackUrl="~/CrossPage2.aspx" Text="Cross-Page Postback" />
    </div>
    </form>
</body>
</h

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号