如何在新窗口中加载局部视图?

时间:2013-04-19 13:31:53

标签: jquery asp.net-mvc window.open asp.net-mvc-partialview

我有一个MVC局部视图。我尝试通过调用控制器名称和操作名称使用window.open加载它。我从动作获得了相关的部分视图,但是没有到样式表和脚本的链接,因为这是一个新窗口。我该如何解决这个问题?

这是我使用的javascript代码:

 function OpenNewWindowForDetail(model) {
    $.ajax({
        url: '@Url.Action("ActionName", "ControllerName")',
        dataType: 'html',
        data: { 
              userid: model.UserId
        },
        type: 'POST',
        success: function (data) {
            var win = window.open('about:blank');
            with (win.document) {
                open();
                write(data);
                close();
            }

        }
    });

}

顺便说一下,样式表文件和javascript文件的所有链接都在layout.cshtml中。

提前谢谢

1 个答案:

答案 0 :(得分:2)

您应该使用布局将操作修改为常规视图,而不是部分视图。在这种情况下没有理由使用局部视图。

也没有理由使用AJAX。使用target='_blank'的简单锚点就足够了。 userId可以通过GET参数传递。