我们知道,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
http://sunrise.szu.edu.cn
分享到:
相关推荐
ASP.NET页面间数据传递的各种方法和分析 1.使用Querystring 方法 QueryString 也叫查询字符串, 这种方法将要传递的数据附加在网页地址(URL)后面进行传递。如页面A.aspx 跳转到页面B.aspx,可以用Request....
ASP.NET页面之间传递值的各种表示方法
ASP.NET页面之间传递值的几种方式,ASP.NET页面之间传递值的几种方式,ASP.NET页面之间传递值的几种方式
Asp.net页面之间传递参数的几种方法荟萃
ASP.NET 页面间传值的几种方法 ASP.NET 页面间传值的几种方法 ASP.NET 页面间传值的几种方法 ASP.NET 页面间传值的几种方法 ASP.NET 页面间传值的几种方法
ASP.NET页面间参数传递,看看吧,,,,,,,,,,
Asp.net页面之间传递参数的几种方法通过URL链接地址传递果你的页面中用到了MasterPage的话 Server.Transfer 传递的 PreviousPage就无效了,不知道这是什么原因.所以在用到MasterPage的话,最好用Session或是Context....
rt asp.net 页面间参数传递
ASP.NET01页面对象模型 ASP.NET01页面对象模型 ASP.NET01页面对象模型 ASP.NET01页面对象模型
asp.net间页面数据传递的几种常用的方法以及原理,便于理解和使用。
asp.net 页面之间传值方法总结.
对于asp.net的页面间的各种传值方式进行了详细的说明
Asp.Net较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,ASP.NET为开发者...本文就来介绍二种可以实现ASP.NET中各Web页面数据传递的方法:第一种方法是使用QueryString,第二种方法是使用Session。
Asp.net页面之间传递参数方法总结 第一种方法:通过URL链接地址传递 第二种方法:通过post方式 第三种方法:通过session 第四种方法:通过Application ……
ASP.NET页面生命周期描述,介绍了页面是如何生成的,变量的生存周期
如何在ASP.NET页面间传送数据如何在ASP.NET页面间传送数据
又四种从ASP.NET页面将数据导出到excel中的方法
ASP.NET页面跳转的几种方法