在页之间通过Server.Transfer传递数据有没有什么弊端?

种草德鲁伊 2010-09-18 04:26:08
类似这样..


public class PageBase : System.Web.UI.Page
{
public Dictionary<string, object> PageData = new Dictionary<string,object>();

}



public partial class _Default : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
this.PageData.Add("name", "asakura nemu");

Server.Transfer("~/Page2.aspx");
}
}



public partial class Page2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var page = Context.Handler as PageBase;
var name = page.PageData["name"] as string;

Response.Write(name);
}
}
...全文
166 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
种草德鲁伊 2010-09-19
  • 打赏
  • 举报
回复
感谢各位回答。
porschev 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gongsun 的回复:]
引用 2 楼 karascanvas 的回复:
性能上不会有什么严重影响吧?


一、它在服务器端直接重定向,不用像response.Redirect一样先与浏览器通信再重定向,效率高。
二、它可以传递上一个页面的提交值。比如:A页面提交值到B页面,B页面Transfer到C页面,C页面同样可以收到A页面提交的值。
[/Quote]

解释的到位。。。。如果跳转不是同级目录。。。图片、样式等路径会不对。。
天地英豪 2010-09-19
  • 打赏
  • 举报
回复
注意图片,js文件的相对路径。
gongsun 2010-09-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 karascanvas 的回复:]
性能上不会有什么严重影响吧?
[/Quote]

一、它在服务器端直接重定向,不用像response.Redirect一样先与浏览器通信再重定向,效率高。
二、它可以传递上一个页面的提交值。比如:A页面提交值到B页面,B页面Transfer到C页面,C页面同样可以收到A页面提交的值。

种草德鲁伊 2010-09-18
  • 打赏
  • 举报
回复
性能上不会有什么严重影响吧?
q107770540 2010-09-18
  • 打赏
  • 举报
回复
Server.Transfer 只能在同一服务器端的同一站点间运行,所以你不能用 Server.Transfer 将用户重定向到另一服务器上的站点。要重定向到服务器以外的站点,只有 Response.Redirect 能办到。

Server.Transfer 保留浏览器端的 URL 地址.Request集合里的内容不会丢失 这对流线型的数据输入很有帮助,不过这也增加了调试的复杂度。

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧