在ASP.NET MVC中返回重定向到新窗口?

时间:2011-03-23 10:48:06

标签: asp.net asp.net-mvc vb.net

基本上,我正在尝试为用户打开一个新窗口,以预览他们提交的一些表单数据。

我正在尝试使用代码从我的控制器执行此操作:

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

但它只是返回一个文件下载对话框,而不是打开一个新窗口。

我是否错过了某些内容,或者我完全错了?

提前感谢您提供任何帮助

3 个答案:

答案 0 :(得分:1)

您可以使用以下方式从控制器操作重定向:

Redirect(YourUrl)

或者如果你想要一个弹出窗口,你应该在你的视图中包含你的javascript并从那里触发它:

<script type="text/javascript">
window.open('http://www.google.com');
</script>

答案 1 :(得分:0)

最好的方法是在ActionLink中添加一个Css类属性,并在jQuery中有一个脚本来处理与这个Css类的所有链接,以便它们在新窗口中打开。你不能在控制器方面这样做,它必须是前端。

<%= Html.ActionLink(item.Title, MVC.Controller.Action(param1, param2, ..,), new { @class="style1" })%>

和jQuery

$('a .style1').click(function () {
    window.open(this.href);
    return false;
});

如果您没有使用ActionLink或有更多问题,请向我们提供更多详细信息,以便我们提供帮助;)

答案 2 :(得分:0)

我设法通过多个小时的试验和错误来论证我自己的决议,最终将我的表单帖子更改为$ .ajax帖子,这使我能够在成功时执行window.open到相关网址。