响应重定向 - 在新窗口中打开链接

时间:2010-04-14 10:28:02

标签: c# asp.net

首先,我花了很多时间来回顾这个似乎最相似的问题,然而,似乎已经选择的解决方案在我的场景中不起作用。更不用说我担心一些评论声称它是脆弱的或不充分的解决方案。

Response.Redirect to new window

- 我们有一个XML文档,它基本上包含Side菜单的所有信息。

- 我们有很多URL存储在常量类中。

- XML字符串中的一个元素(称之为标签)用于确定菜单项是创建为LinkBut​​ton还是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完成(这似乎是有争议的 - 人们说不,它不能,但其他人说他们已经使它工作)?如果没有,可以选择哪种替代方案?

1 个答案:

答案 0 :(得分:3)

你迷路了。响应重定向导致重定向被发送到浏览器 - 在CURRENT窗口中。

在新窗口中打开内容的唯一方法是发出一个html页面,然后在另一个窗口(这是锚点上的属性)中打开新的URL,或者发出javascript这样做。

可悲的是,必须在调用方法之前决定 - 一旦调用了方法,HTTP请求即将开始。无论何种设计,都会故意忽略作为浏览器基础的请求/响应机制。

那些说他们得到了它的人,并没有在服务器端这样做。服务器没有权限将请求重定向到新的浏览器窗口 - 必须在发出请求之前从浏览器开始。如果没有别的,那么出于安全原因。