首先,我花了很多时间来回顾这个似乎最相似的问题,然而,似乎已经选择的解决方案在我的场景中不起作用。更不用说我担心一些评论声称它是脆弱的或不充分的解决方案。
Response.Redirect to new window
- 我们有一个XML文档,它基本上包含Side菜单的所有信息。
- 我们有很多URL存储在常量类中。
- XML字符串中的一个元素(称之为标签)用于确定菜单项是创建为LinkButton还是Label。
-Links使用一个自定义用户控件,该控件对应用程序中的所有链接都是标准的(为什么类似线程上的建议不起作用 - 我不希望所有链接在新窗口中打开 - 只需一个)
- 一个XML字符串中的一个元素(调用它函数)在Switch语句中用于使用Response Redirect生成我们的链接。
它可能看起来像这样。
switch (function)
{
case goto 1:
string url;
if (user_group == 1)
{
url = Constants.CONSTANT1
}
else
{
url = Constants.CONSTANT2
}
Response.Redirect(url)
case goto 2:
......
default:
......
break;
}
鉴于这种情况,我正在尝试找到快速打开新窗口的最佳方法,当满足此switch语句中的特定情况时。是否可以通过Response Redirect完成(这似乎是有争议的 - 人们说不,它不能,但其他人说他们已经使它工作)?如果没有,可以选择哪种替代方案?
答案 0 :(得分:3)
你迷路了。响应重定向导致重定向被发送到浏览器 - 在CURRENT窗口中。
在新窗口中打开内容的唯一方法是发出一个html页面,然后在另一个窗口(这是锚点上的属性)中打开新的URL,或者发出javascript这样做。
可悲的是,必须在调用方法之前决定 - 一旦调用了方法,HTTP请求即将开始。无论何种设计,都会故意忽略作为浏览器基础的请求/响应机制。
那些说他们得到了它的人,并没有在服务器端这样做。服务器没有权限将请求重定向到新的浏览器窗口 - 必须在发出请求之前从浏览器开始。如果没有别的,那么出于安全原因。