C# 在新选项卡中打开URL

C# 在新选项卡中打开URL,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个像 Response.Redirect("~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&f

我有一个像

Response.Redirect("~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher");
我想在浏览器的“新建”选项卡中打开此url。 我试过下面的代码

string pageurl = "~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher";
Response.Write("<script>");
Response.Write("window.open('" + pageurl + "','_blank')");
Response.Write("</script>");
我也试过了

<asp:Button ID="btnPrint" Text="Print" runat="server" OnClick="btnPrint_Click" OnClientClick="aspnetForm.target ='_blank';"/>

但所有这些都不起作用。 请告诉我其他的解决办法。
提前感谢。

您将URL与~一起使用,javascript无法识别。您应该使用~方法处理url,方法是

将URL转换为可在请求客户端(c)msdn上使用的URL

就你而言:

Response.Write(String.Format("window.open('{0}','_blank')", ResolveUrl(pageurl)));

在JavaScript的帮助下,只要我们想在新窗口中打开页面,就可以将表单的target属性设置为_blank。试试下面的方法

我有一个ASP.Net按钮

 <asp:Button ID="btnPrint" runat="server" Text="PRINT BILL" Onclick="btnPrint_Click"  OnClientClick="SetTarget();" />

anand360给出的答案对我很有用。谢谢

我在JavaScript中做了如下细微的更改,以便只访问所需的元素

document.getElementById["element_id"].target = "_blank";

或者只是删除相对于应用程序根的波浪线。这有问题。Javascript运行后,与表单上的任何控件(不仅仅是按钮)的任何交互都将导致打开一个新选项卡。
<script type = "text/javascript">
 function SetTarget() {
     document.forms[0].target = "_blank";
 }
</script>
 protected void btnPrint_Click(object sender, EventArgs e)
    {
         Response.Redirect("ReportViewer1.aspx");
    }
document.getElementById["element_id"].target = "_blank";