C# 后台代码,如何以当前浏览器打开新的页面

yanele 2020-01-17 09:17:54
我在A页面以这种方式:Response.Write("<script language='javascript'>window.open('xxx.aspx" + "')</script>");
会跳转到B页面xxx.aspx中去,由于A页面需要传很多参数,用Session存值,B页面根据Session进行处理。

我A页面如果以IE浏览器打开,再跳转到B页面也是有IE浏览器打开的,是正常的;

如果我A页面如果用UC浏览器打开,再跳转到B页面仍是有IE浏览器打开,取不到Session值,B页面会报错;

=====================================================================

考虑到客户端可能存在各种浏览器,如360,UC,搜狗,遨游,火狐,IE等。

所以请问大神:需要根据A界面用什么浏览器打开,B页面就用什么浏览器打开,C#后台代码如何实现这种页面跳转?
...全文
642 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 楼主 yanele 的回复:
需要根据A界面用什么浏览器打开,B页面就用什么浏览器打开,C#后台代码如何实现这种页面跳转?


这跟 asp.net 没一点儿关系,浏览器也没有这个规范,如何解析和执行 js 代码那是不同浏览器(或者嵌入桌面窗体的 web 控件)决定的。asp.net 无法替浏览器执行。
  • 打赏
  • 举报
回复
不要使用 asp.net Session 来“传值”。它实际上是随时会丢失的,并且也需要结合 html 的 cookie 来使用才能保证(你的跨浏览器)访问的连续性。

应该明确地使用“url 参数”来传值。例如一个页面程序可以把一组数据写到数据库中,产生一个任务编号id作为访问这组参数的key,然后将浏览器客户端重定向到另外一个页面程序,例如跳转到得目标页面为
http://www.abc.com/site2/zhangsan.do?id=929834921sfasfka2342
这样,另外一个页面 zhangsan.do 在服务器端执行时就能根据 QueryString["id"] 的值读取此页面程序的各种初始化信息。就算是服务器端处理页面时是跨服务器的集群操作,也是一样的原理。

跨页面程序操作,不要纠结什么 Session,要假设是不同程序,甚至也不要纠结源页面和目标页面是用同一种编程语言、平台开发的。要从通用的 web 前端技术原理出发,不要只懂一点 asp.net。
by_封爱 版主 2020-01-19
  • 打赏
  • 举报
回复
我还真没遇到过 open打开不同浏览器的.... 你确定 用UC浏览器执行window.open 能打开IE?
一支糖包仔 2020-01-17
  • 打赏
  • 举报
回复
后台有个重定向方法Response.Redirect,我从来没遇到过open方法打开居然不是同一个浏览器情况,不知道怎么搞。
快乐起航2020 2020-01-17
  • 打赏
  • 举报
回复
你是怎么打开不同浏览器的
yanele 2020-01-17
  • 打赏
  • 举报
回复
就是最前面那个代码,我现在感觉Main主页面,弹窗出A页面,是默认以IE浏览器打开的,所以打开B页面也就走到IE浏览器去了。现在还在反复测试中......
qq_28644143 2020-01-17
  • 打赏
  • 举报
回复
你到底是怎么用window.open打开别的浏览器的
yanele 2020-01-17
  • 打赏
  • 举报
回复
我是Main主页面,弹窗出A页面,再用这种方式打开B页面,我即使将UC浏览器设为默认浏览器,window.open也是把IE浏览器打开了。Response.Redirect这种方式不弹窗。

110,567

社区成员

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

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

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