我想做一个Response.Redirect("MyPage.aspx"),但要在新的浏览器窗口中打开它。我之前没有使用JavaScript注册脚本方法就已经这样做了。我只是不记得如何?

最佳答案

我刚刚找到了答案,它可以工作:)

您需要将以下内容添加到服务器端链接/按钮:

OnClientClick="aspnetForm.target ='_blank';"

我的整个按钮代码如下所示:
<asp:LinkButton ID="myButton" runat="server" Text="Click Me!"
                OnClick="myButton_Click"
                OnClientClick="aspnetForm.target ='_blank';"/>

在服务器端OnClick上,我执行Response.Redirect("MyPage.aspx");,并在新窗口中打开页面。

您需要添加的另一部分是修复表单的目标,否则每个链接都会在新窗口中打开。为此,在POPUP窗口的标题中添加以下内容。
<script type="text/javascript">
    function fixform() {
        if (opener.document.getElementById("aspnetForm").target != "_blank") return;
        opener.document.getElementById("aspnetForm").target = "";
        opener.document.getElementById("aspnetForm").action = opener.location.href;
    }
</script>


<body onload="fixform()">

09-05 01:14