2012-01-24 335 views
6

我不一定非要使用response.redirect,但那就是我所擁有的。我想在新窗口中打開選定的鏈接。我怎麼做?如何在response.redirect上使用Target = _blank?

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

可能重複:[http://stackoverflow.com/questions/104601/asp-net-response-redirect-to -new-window] – perfectionist

回答

12

你不能簡短的回答。瀏覽器是唯一可以打開新窗口的東西。

你可以做的是發送一個HTML塊的響應,有一個與你的網址鏈接作爲href,target =「_ blank」和一個JavaScript的onload的窗體,虛假點擊。如果這不起作用,然後使用window.open(url);

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

這不起作用在我的page.please幫助 – DharaPPatel

+0

你可以添加一些代碼來顯示你在做什麼? –

4

你試圖從服務器端完成客戶端任務,所以你需要做一些黑客攻擊。

一種選擇是發回只有一點JavaScript的頁面,然後它將處理重定向。

這不是特別乾淨,但什麼:

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

彈出窗口攔截器怎麼樣? – GlennG

+0

這會生成一個錯誤,可能會導致潛在危險Request.Path值從客戶端 – TheAlbear

1

你不能做到這一點與Response.Redirect()

那麼你可以做到這一點使用一個簡單的JavaScript內Response.Write

Response.Write("<script>window.open('page.html','_blank')</script>"); 
0

如果我正確理解這一點,您希望能夠在新窗口中打開重定向的URL,但可能會將原始目標保留在相同的位置窗口。

不幸的是,你不能這樣做,因爲重定向是由服務器而不是瀏覽器提供的。您可能會重定向到包含一些基於URL查詢字符串參數打開新窗口的腳本的頁面。但是如果你不小心的話,這會讓XSS開放。

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 ');"); 

這只是一個標準按鈕,否則將調用一個點擊處理程序的替代。請記住,您可以從前面添加整個事物作爲屬性。

1

如果你是剛剛處理的導航,你可以嘗試一個ASP:超鏈接控制,而不是一個按鈕,這樣的目標是爲瀏覽器指定當頁面呈現:

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

當然是更禮貌地離開。單獨目標,因爲在這種情況下,超級鏈接可以被右鍵單擊,並且可以從上下文菜單中獲得「在新頁面/標籤中打開」。

2

使用按鈕的OnClientClick屬性:

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

我使用重定向此代碼:

的Response.Write(「窗口。開放( 'http://www.whatever.com', '_空白')< 「+」/ SCRIPT>「);

最終標籤需要被格式化< 」+「/ SCRIPT>

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>") 

這將創建一個彈出不是打開一個新的標籤

-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(); 
+0

中檢測到,嘗試整齊地寫出答案,以便他們很容易理解 – Chella

0

我見過很多歌曲,沒有人真的爲我工作。所以我試了下面的代碼,它解決了我的問題:

首先,我通過linkbutton與按鈕相同的方面更改MT按鈕。

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

之後我在我的代碼後面添加以下內容。

btPrint.Attributes.Add("href", String.Format("printPage.aspx?&id={0}", txtId.Text)); 
btPrint.Attributes.Add("target", "_blank"); 
0

這對我的作品

在ASPX代碼:

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