【发布时间】:2014-09-03 17:53:17
【问题描述】:
我需要在 Asp.net MVC 后面的代码中在新选项卡中打开另一个站点。
return 重定向(“网址”);用于在同一选项卡中打开另一个站点。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2
我需要在 Asp.net MVC 后面的代码中在新选项卡中打开另一个站点。
return 重定向(“网址”);用于在同一选项卡中打开另一个站点。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2
这对用户来说似乎不太实用,因为在第二个选项卡中进行身份验证后,他们必须刷新第一个选项卡才能看到效果。
FormsAuthentication 的 ReturnUrl 属性似乎可以满足您的需求。当用户需要登录时,会被重定向到登录页面,登录后会被重定向回来。
如果您大量使用 javascript 和 ajax,并且想保留当前页面的 javascript 变量但需要登录进行 ajax 调用,可能还有其他解决方案。如果您的 ajax 调用的响应是未经身份验证的标头,请打开一个灯箱或类似的带有用户名和密码字段的东西。使用 ajax 发布到 AccountController 以再次登录用户。这样,用户再次通过身份验证,但您保留了 javascript 变量。
【讨论】:
这只能使用 javascript 来完成。试试这个。
<%
Response.Write '<script type="text/javascript">
window.open(url);
</script>'
%>
希望它有效。
【讨论】:
如果您从表单调用操作并使用提交的输入类型,您可以尝试
<input type="submit" formtarget="_blank" />
如果你使用链接<a> 或 AjaxCall 你可以试试
<a target="_blank"></a> 或在 ajax 助手设置属性 @target="_blank"
这是我的代码 cshtml
@using (Html.BeginForm("PersonsReport", "Reports"))
{
<br />
<div style="text-align: center;">
<input type="submit" formtarget="_blank" class="btn btn-primary" value="GetReport" style="width:100%;" />
</div>
<br />
}
controller.cs
public ActionResult PersonsReport()
{
return Redirect("/PersonsReport.aspx");
}
【讨论】: