ASP.NET页面间传递对象的另类方法

asp.net|对象|页面

 我们知道,Asp.net在不同页面间传递对象的时候可以用Session来实现。现在我想介绍另外一种方法来达到目的。

    主要思路:我们需要两个页面,一个Sender.aspx负责发送所需传递的对象,一个Receiver.aspx负责接受send过来的对象。Sender.aspx主要是运用了Server.Transfer来终止当前页面的执行,并开始调入Receiver.aspx来取出对象。

具体实现:

ITransfer.cs
namespace Sunrise.Sample.FormTransfer
{
   /// <summary>
   /// 此接口定义了一个返回所需传递对象的属性
   /// 发送对象的页面必须实现此接口
   /// </summary>
    public interface ITransfer
    {
    MyClass MyObject
    {
       get;
       set;
    }
    }
}

MyClass.cs
namespace Sunrise.Sample.FormTransfer
{
 /// <summary>
 /// 一个用来演示的简单类
 /// </summary>
 public class MyClass
 {
  private string _strMessage;

  public MyClass()
  {
  }

  public string Message
  {
   get
   {
    return this._strMessage;
   }
   set
   {
    this._strMessage = value;
   }
  }

 }
}

后台代码文件Receiver.aspx.cs

namespace Sunrise.Sample.FormTransfer
{
 /// <summary>
 /// 接收对象的页面
 /// </summary>
 public class Receiver : System.Web.UI.Page
 {
  private void Page_Load(object sender, System.EventArgs e)
  {
   ITransfer mySender;

   if(!IsPostBack)
   {
    //判断当前页面的HttpHandler,如果实现了ITransfer接口
    //就转换成ITransfer
    if(Context.Handler is ITransfer)
    {
     mySender = (ITransfer)Context.Handler;

     Response.Write(mySender.MyObject.Message);
    }
    else
    {
     Response.Redirect("Sender.aspx");
    }
   }
  }
 
  .
  .
  .
 }
}

后台代码文件Sender.aspx.cs

namespace Sunrise.Sample.FormTransfer
{
 /// <summary>
 /// 发送对象的页面
 /// </summary>
 public class Sender : System.Web.UI.Page, ITransfer   //继承ITransfer
 {
  protected System.Web.UI.WebControls.Button btnSend;
  private MyClass _objMyObject;

  private void Page_Load(object sender, System.EventArgs e)
  {
   _objMyObject = new MyClass();
  }

  //实现ITransfer接口
  public MyClass MyObject
  {
   get
   {
    return this._objMyObject;
   }
   set
   {
    this._objMyObject = value;
   }
  }

  /// <summary>
  /// 响应按钮事件
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void btnSend_Click(object sender, System.EventArgs e)
  {
   this.MyObject.Message = "test";

   //调用Server.Transfer(),转向执行Receiver.aspx
   Server.Transfer("Receiver.aspx");
  }
 
  .
  .
  .
 }
}

编译通过后,执行Sender.aspx,单击btnSend按钮,就可以看到执行结果了:Receiver.aspx页面拿到了MyObject对象,并且在页面上显示出MyObject.Message的值为“test”;

需要完整Project源码请联系作者: szumic@hotmail.com

 

时间: 2024-12-30 01:05:50

ASP.NET页面间传递对象的另类方法的相关文章

ASP.NET页面间数据传递的9种方法

本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性. 0.引言 Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种

ASP.NET页面间数据传递

0.引言 Web页面是无状态的,服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合. 1.ASP.NET页面间数据传递的各种方法和分析 1.1 使用Querystring 方法 QueryStrin

ASP.NET页面间数据传递的几种方法介绍_实用技巧

Web页面是无状态的,服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合. 一.ASP.NET页面间数据传递的各种方法和分析 1.使用Querystring 方法 QueryString 也叫查询字

ASP.NET页面间数据传递的方法

00.引言 Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合. 1.ASP.NET页面间数据传递的各种方法和分析 1.1 使用Querystring 方法 QueryStr

一起谈.NET技术,ASP.NET页面间数据传递的方法

00.引言 Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合. 1.ASP.NET页面间数据传递的各种方法和分析 1.1 使用Querystring 方法 QueryStr

ASP.NET页面间数据传递小结

asp.net|数据|页面 ASP.NET较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,ASP.NET为开发者提供了事件驱动的开发模式,从此程序员可以像利用可视化编程工具开发Windows应用程序一样来开发ASP.NET的基于Web页面的应用程序了. 一般稍微庞大的ASP.NET程序至少拥有二个或以上的Web页面,程序员在开发类似ASP.NET应用程序时一般都需要处理在多个Web页面传递数据的问题.我们知道ASP.NET程序中的各个Web页面类似于Windows应用程序中的F

在两个ASP.NET页面之间传递值

asp.net|页面 引言 ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事情,在使用事件驱动编程模型的ASP.NET就不是那么容易了,当然了,我们仍然有一些方法可以实现同样的功能.本文将试着使用不同的可能的方法来解决这个问题,但可以预见是,本文将包含使用querystring,session变量以及server.Transfer方法来实现页面间

ASP.NET 页面之间传递值方式优缺点比较_实用技巧

本题考查面试者对ASP.NET中多页面传值的理解是否全面.因为ASP.NET的页面表单提交到自身,完成回传的功能,所以默认情况下不能使用POST方式进行多页面传值.关于这些传值方式的分析如下所示.1.URL传值这是经典的传值方式,这种方法的使用非常简单,不过所传递的值是会显示在浏览器的地址栏上的,而且不能传递对象.所以这种方法一般用于传递的值少且安全性要求不高的情况下.在*.aspx页面开发中可以使用超级链接文本进行传值,如以下代码所示.<asp:HyperLink runat="serv

(转)列举ASP.NET 页面之间传递值的几种方式

1.使用QueryString,  如....?id=1; response. Redirect().... 2.使用Session变量.3.使用Server.Transfer.4.Application .5.<input type="hidden"></input> 6.数据库. 使用QueryString : 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏 览器的地址栏