因此,在我的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="/"
添加到锚标记中;我最终在新窗口中获得了登录页面,并在原始页面中获得了支付网关。
如何在新窗口中显示此内容?
答案 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("/");
}
可能有效