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

C# 响应重定向-在新窗口中打开链接,c#,asp.net,C#,Asp.net,首先,我花了时间回顾了这个问题,它似乎是最相似的,但是,似乎选择的解决方案在我的场景中不起作用。更不用说,我担心一些评论声称它是脆弱的或不适当的解决方案 -我们有一个XML文档,它基本上包含了侧菜单的所有信息 -我们有许多存储在常量类中的URL -XML字符串中的一个元素(我们称之为标签)用于确定菜单项是创建为链接按钮还是标签 -链接使用自定义用户控件,该控件用于整个应用程序中的所有链接(为什么对类似线程的建议不起作用-我不希望在新窗口中打开所有链接-仅一个) -XML字符串中的一个元素(我们

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

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

-我们有许多存储在常量类中的URL

-XML字符串中的一个元素(我们称之为标签)用于确定菜单项是创建为链接按钮还是标签

-链接使用自定义用户控件,该控件用于整个应用程序中的所有链接(为什么对类似线程的建议不起作用-我不希望在新窗口中打开所有链接-仅一个)

-XML字符串中的一个元素(我们称之为函数)用于Switch语句中,以使用响应重定向生成链接

它可能看起来像这样

    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语句中的特定情况时,我试图找到快速打开新窗口的最佳方法。可以通过响应重定向来实现吗(这似乎是有争议的——人们说不可以,但其他人说他们已经实现了)?如果没有,还有什么办法可以解决呢?

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

在新窗口中打开某些内容的唯一方法是发出一个html页面,然后在另一个窗口中打开新URL(这是锚点上的一个属性),或者发出javascript来执行此操作

不幸的是,这必须在调用您的方法之前决定——一旦调用了您的方法,HTTP请求就在路上了。无论是谁设计的,都故意忽略了作为浏览器基础的请求/响应机制


那些说他们让它工作的人,在服务器端没有这样做。服务器无权将请求重定向到新的浏览器窗口-在发出请求之前,必须先在浏览器中启动该窗口。如果没有其他原因,那么出于安全原因。

我感谢您的解释。幸运的是,当我们连接linkbutton控件时,我能够找到一种替代方法。if(function==goto_1){lnkbtn.Attributes[“onclick”]=“window.open('url')”}