如何在response.redirect上使用Target = _blank?

时间:2012-01-24 21:16:51

标签: c# asp.net .net

我不一定要使用response.redirect,但这就是我所拥有的。我想在新窗口中打开所选链接。我该怎么做?

context.Response.Redirect(ConfigurationManager.AppSettings["URL"] + ext );

12 个答案:

答案 0 :(得分:14)

你不可能是简短的回答。浏览器是唯一可以打开新窗口的东西。

你可以做的是在响应中发送一大块html,其中包含与你的url的链接作为href,target =“_ blank”以及伪造点击的表单的一大堆javascript onload。如果这不起作用,那么使用window.open(url);

response.write("<script>");
response.write("window.open('page.html','_blank')");
response.write("</script>"); 

答案 1 :(得分:4)

您正在尝试从服务器端完成客户端任务,因此您需要进行一些黑客攻击。

一个选项是发回一个只是一点JavaScript的页面,然后它将处理重定向。

这不是特别干净,但是:

Response.Write("<script>window.open('http://www.somesite.com/','_blank');</script>");

答案 2 :(得分:2)

使用按钮的OnClientClick属性:

<asp:Button runat="server" ID="cmd_Test" onclientclick="window.open('YourUrl')"  />

答案 3 :(得分:1)

您无法使用Response.Redirect()

执行此操作

您可以使用Response.Write

中的简单Javascript来完成此操作
Response.Write("<script>window.open('page.html','_blank')</script>");

答案 4 :(得分:1)

如果您只是处理导航,您可以尝试ASP:超链接控制而不是按钮,这样就可以在呈现页面时为浏览器指定目标:

protected void Page_Load (object sender, EventArgs e)
{
    lnkViewPage.NavigateURL = sURL;
    lnkViewPage.Target = "_blank";
}

当然离开是更礼貌的。单独的目标,因为在这种情况下,可以右键单击超链接,并且可以从上下文菜单中“在新页面/选项卡中打开”。

答案 5 :(得分:1)

SqlConnection con = new SqlConnection("Data Source=.; uid=sa; pwd=sandesh;database=BeautyJunction;");
        string strSQL = "Select BenificiaryType,BenificiaryName,DisttCode,IFSC,AC_No from BenificiaryMaster";
        SqlDataAdapter dt = new SqlDataAdapter(strSQL, con);
        DataSet ds = new DataSet();
        dt.Fill(ds, "UserDetail");
        string dat = String.Format("{0: MM_dd_yyyy}", DateTime.Now);
        //string dat = Convert.ToString(DateTime.UtcNow.ToShortDateString());
        sb.Append("~/Folder1/BenificiaryMaster_file_1" + dat + ".xml");
        string path = sb.ToString();
        ds.WriteXml(Server.MapPath(path));
        LabelMessage.Text = "Your XML file has Been created with name 'BenificiaryMaster_file_1" + dat +"'  <a target='_blank' href=Folder1/BenificiaryMaster_file_1.xml>click here</a> to show Benificiary record file";
        //GridView1.DataBind();

答案 6 :(得分:0)

如果我理解正确,您希望能够在新窗口中打开重定向的URL,但可能会将原始目标保留在同一窗口中。

不幸的是,你不能这样做,因为重定向是由服务器而不是浏览器提供的。您可能会重定向到包含一些基于URL查询字符串参数打开新窗口的脚本的页面。但如果你不小心的话,这会让你自己接受XSS。

答案 7 :(得分:0)

你编程的超链接怎么样?想象一下。 asp超链接当你点击打开一个新窗口,可能没有滚动条,没有地址栏,你想要的任何东西。这是一个例子:

hyperlink1.Attributes.Add("onclick", "window.open(http://www.mylink.com?sessionvar1=" + someValue + "',null,'height=251px, width=600px,status=no, resizable=no, scrollbars=no, toolbar=no,location=no,menubar=no ');");

这只是标准按钮的替代方案,否则会调用单击处理程序。请记住,您可以将整个事物从前面添加为属性。

答案 8 :(得分:0)

我将此代码用于重定向:

回复于( “window.open( 'http://www.whatever.com', '_空白')&LT;” + “/脚本&gt;” 中);

最终代码需要格式化为&lt;“+”/ script&gt;

答案 9 :(得分:0)

我添加了@DaveWalker回复:

Response.Write("<script>")
Response.Write("window.open('NewPage.aspx','_blank','resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=no')")
Response.Write("</script>")

这将创建弹出式广告,而不是打开新的标签

答案 10 :(得分:0)

我见过很多次,没有人真正适合我。所以我尝试了以下代码,它解决了我的问题:

首先,我通过链接按钮更改了mt按钮,其方面与按钮相同。

16 * 20 = 320px

在此之后,我在后面的代码中添加以下内容。

<asp:LinkButton ID="btPrint" runat="server" class="btn btn-primary"><span class="glyphicon glyphicon-print"></span> Print</asp:LinkButton>

答案 11 :(得分:0)

这对我有用

关于aspx代码:

 <a id="myLink" target="_blank" onclick="window.open('ExamplePage.aspx, '_blank');">Link To A Page And Open Other Tab</a>