在新选项卡中打开动态生成的链接

时间:2017-02-28 14:44:15

标签: asp.net-mvc

因此,在我的MVC网站上,我需要在新选项卡中打开动态生成的URL。到目前为止,我所获得的代码如下:

<a class='noline' onclick="location.href='<%:@Url.Action("GeneratePaymentUrl", "Home", new {target="_blank"})%>'"> Pay Invoices</a>

    public ActionResult GeneratePaymentUrl()
    {
        try
        {
            string returl = GetPaymentUrl();

            if (returl.ToLower().StartsWith("http"))
            {
                //Response.Redirect(returl);
                return new RedirectResult(returl, false);
            }
            else
            {
                return new RedirectResult("/");
            }

        }
        catch (Exception Ex)
        {
        }
        return new RedirectResult("/");
    }

现在,点击链接时必须生成URL;因为它将进入外部支付网关,授权时间非常短暂。现在代码工作;它将正确打开页面,但不会在新选项卡中打开。如果我尝试将target="blank" href="/"添加到锚标记中;我最终在新窗口中获得了登录页面,并在原始页面中获得了支付网关。

如何在新窗口中显示此内容?

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用window.open?

window.open("http://www.google.com")

〜A

答案 1 :(得分:1)

JavaScript: location.href to open in new window/tab?我想这就是答案。由于您尝试使用脚本加载页面,因此将忽略target属性。您必须为要打开新页面的脚本指定它。像这样:

<a class='noline' onclick="window.open('<%:@Url.Action("GeneratePaymentUrl", "Home", new {target="_blank"})%>,'_blank' 
);"> Pay Invoices</a>

    public ActionResult GeneratePaymentUrl()
    {
        try
        {
            string returl = GetPaymentUrl();

            if (returl.ToLower().StartsWith("http"))
            {
                //Response.Redirect(returl);
                return new RedirectResult(returl, false);
            }
            else
            {
                return new RedirectResult("/");
            }

        }
        catch (Exception Ex)
        {
        }
        return new RedirectResult("/");
    }

可能有效