Server.Transfer的问题,如何在Transfer过程中保持url不变.

Kevin_jun 2006-02-10 12:15:33
如:
a.aspx --> b.aspx
b.aspx --> a.aspx
我在两个页面间用Transfer时,调用后用在b.aspx时 url还是a.aspx 的url.
但Transfer回a.aspx时,url变成了至b.aspx的链接.
如何保持a页的url在此过程中不变.

做过的请给下解决方法.立即结帖的.
...全文
191 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevin_jun 2006-02-12
  • 打赏
  • 举报
回复
谢谢sp1234
刚我try了一下,Response.End确实有效.
我说的url问题,是因为我用的javascript的showModalDialog().这样来得到返回值,并重新来
请求页面一次,以绑定数据.当然,有的pop不需要重新去绑定数据.Request.ApplicationPath
在有些时候也不好用.

不过谢谢,让我明白了不少.
由于.net只有一个form.server给不了客户控件的值.
我的这个页面其实是:
1.选择一个公司.(pop)
2.选择公司常用服务.(pop)
3.选择公司其它服务.(pop)
4.获得会计帐号(公司用)与纳税单号(税务局).
5.增加/删除/修改(当前页)一项服务.
6.重新设定一个公司的常用服务.(pop)
7.统计金额.(纳税,免税,总额....)
8.保存/打印这一单据.

不知哪位前辈有这方面的code没有,可能的话给个sample参考一下.
我下载了一些,都不是很合适.有些看不到源码.
先谢过.
Kevin_jun 2006-02-11
  • 打赏
  • 举报
回复
楼上的说的有道理
但我没有缓存数据集为先
另Redirect的结果是可能要传递很大量的数据在url请求里,其中有/,\, ., ',&,*,* @,#
这些符号可能全在这些里面.最后我还要split,还要数着数对号入座的.

这个实习的项目也问了参考好几个帖子.说是javascript占用server资源少.搞得我用url传得晕死.
现在干脆用session缓存数据集.
用transfer是本想不用去管数据传递的,且MSDN上介绍Transfer比Redirect要快与方便.

可能我还是没掌握什么技巧吧.这是一个类似公司帐单与税务的web设计.搞得不像样啦.
  • 打赏
  • 举报
回复
不过,我没有弄明白你的问题具体出现在哪里。

按理说,设计页面或者程序的时候,你就应该考虑到相对地址的害处,而将相对地址全都改为绝对地址。例如在设计器上使用类似"~/images/a.jpg"的写法,或者在程序中写 Request.ApplicationPath+"/images/a.jpg"。而不是去读取url。此时在a.aspx显示的时候,它的url不论是a.aspx还是b.aspx,只要其中form的地址是指向a.aspx的,asp.net都会使用正确的页面处理提交动作,不会出现问题。
  • 打赏
  • 举报
回复
在execute同时,两个页面的东东会出现在一个页面内.如何解决呢.
——————————————————————————————————
Server.Execute("b.aspx")
Response.End
xhan2000 2006-02-10
  • 打赏
  • 举报
回复
传来传去的不科学

可以考虑用弹出窗口
或者用session或cookie来存储一些临时变量
Kevin_jun 2006-02-10
  • 打赏
  • 举报
回复
孟子老大
这个execute是用来执行类似函数的页面的吧.我的页面带有一些控件
在execute同时,两个页面的东东会出现在一个页面内.如何解决呢.
孟子E章 2006-02-10
  • 打赏
  • 举报
回复
Server.Execute("b.aspx")
IS_LL 2006-02-10
  • 打赏
  • 举报
回复
笨笨
a.aspx --> b.aspx用Server.Transfer
b.aspx --> a.aspx用Response.Redirect
Kevin_jun 2006-02-10
  • 打赏
  • 举报
回复
我现在用了一个方法,就是在pop时,先判断是a还是b页,否则就给替换过来.
只是有点挂羊头卖狗肉的样,url里的地址根本不是那回事.没办法,各位大哥有什么好方法与code还望指点一下.
Kevin_jun 2006-02-10
  • 打赏
  • 举报
回复
老板要求的啊,没办法.
我的页码上已经有4个弹出窗口了.且都与数据集有关.每次都要重提交一次.
而且还要提交值,还得判断.
用transfer是想给其中一个数据集增加(用户选择)新值.而在pop页面不好实现.因为可能要把页面上的变量集中又提交一次.这个页面太多输入了.不至于提一次要人家全重新来过啊.

现在pop与transfer混用,就是不好解决这个url的问题.实在没办法.就只有用硬的写的.
不知各位还有什么好的方法没有.

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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