导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

怎么将一个对象从一个页面传到另外一个页面???高手来帮忙

hexinyu2005 2007-03-28 04:29:11
怎么将一个对象从一个页面传到另外一个页面???高手来帮忙
...全文
266 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hexinyu2005 2007-03-28
我是一个对象呀,有很多参数的
回复
plsandslp 2007-03-28
放在地址里面吧 ,如http:\\10.10.10.1\index.aspx?a=12
然后用request.querystring取a 的值不就行了
回复
jimu8130 2007-03-28
似乎该对象要能进行序列化吧
回复
lovehongyun 2007-03-28
关注..
回复
hexinyu2005 2007-03-28
求帮助
回复
realtb 2007-03-28
晕哦
每次都慢一拍
回复
realtb 2007-03-28
可以考虑下消息队列
复杂对象传送
回复
realtb 2007-03-28
a页面在a服务器
b页面在b服务器?
回复
Nils 2007-03-28
转自:http://naliyouwo.blog.hexun.com/7728538_d.html


具体实现:

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”;
回复
realtb 2007-03-28
楼上的都说了
回复
hexinyu2005 2007-03-28
因为是用的多台服务器,所以不能用SESSION
回复
zjstccc 2007-03-28
保存在session,application中
回复
dreamwaters 2007-03-28
放到SESSION 中
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告