在ASP.NET网页间传递数据的五种方法

发表于:2010-11-24 09:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:光脚丫思考(cnblogs)    来源:51Testing软件测试网采编

  重点总结

  目前为止在ASP.NET网页中传递数据的方式至少有5种:

  1、通过查询字符串传递数据。

  2、通过HTTP POST传递数据。

  3、通过会话状态传递数据。

  4、通过源页的公共属性传递数据。

  5、通过源页中的控件值传递数据。

  到底使用哪种方式来进行数据的传递,这可能受到两方面的影响:

  1、页面重定向的方式。

  2、源页和目标页是否位于相同的ASP.NET应用程序中。

  如果源页和目标页位于不同的ASP.NET应用程序中则只能通过查询字符串和HTTP POST传递数据。

  而如果源页和目标页位于相同的ASP.NET应用程序中,则可以使用五种方式中的任意一种。

  一、通过查询字符串传递数据

  下面的两个URL,第一个只传递了产品编号,第二个不仅传递了产品编号,同时也传递产品名称。

  http://localhost/Demo/DestinationPage.aspx?ProductID=777

  http://localhost/Demo/DestinationPage.aspx?ProductID=777&ProductName=Glass

  在目标页中则可以通过Page.Request.QueryString属性来获取查询字符串中传递的键值。比如下面的代码:

this.Response.Write(this.Request.QueryString["ProductID"]);
this.Response.Write("<br />");
this.Response.Write(string.Format("ProductID={0} ProductName={1}",
    this.Request.QueryString["ProductID"],
    this.Request.QueryString["ProductName"]));

  二、通过HTTP POST传递数据

  此示例代码在源页中,为用户提供了输入用户名、生日和年龄的文本框,并且将Button控件的PostBackUrl属性设置为DestinationPage.aspx。也就是说当单击【提交到目标页】按钮后,源页窗体的数据会被传递到DestinationPage.aspx页面。

  在目标页中则通过Page.Request.Form属性来获取这些传递过来的数据。

  源页的页面源码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SourcePage.aspx.cs" Inherits="SourcePage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>源页!</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        User Name :
        <asp:TextBox ID="UserNameTextBox" runat="server"></asp:TextBox>
        <br />
        Birth Date :
        <asp:TextBox ID="BirthDateTextBox" runat="server"></asp:TextBox>
        <br />
        Age :
        <asp:TextBox ID="AgeTextBox" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="SubmitButton" runat="server" Text="提交到目标页"
            PostBackUrl="~/DestinationPage.aspx" />
    </div>
    </form>
</body>
</html>

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号