4

我正在寻找一种替代方法来使用 IFRAME 在使用 MVC3 的所有页面的包装页面中加载整个页面。我需要用于集中登录和身份验证的包装器页面,并且希望在包装器的一部分中动态加载其他页面,就像在 WPF 中加载模块一样。我以前使用 IFRAME 来完成此操作,但我想保持导航不变(即后退按钮将转到先前加载的“插件”页面而不是包装器的前一页)。我认为我可能能够使用部分视图来完成此操作,但无法找到从完全不同的项目(或已托管的站点)加载部分视图的方法。有任何想法吗?

4

2 回答 2

4

您可以进行 ajax 调用以从外部站点获取内容并将它们放在父页面 html 中的所需位置。这你可以做页面的加载。

使用jquery,它会是这样的:

$.ajax({
        url: 'http://www.externalsite.com',
        cache: false,
        dataType: "html",
        success: function (data) {
           $("#divInsideParentPage").html(data);
        }
    });
于 2012-04-26T19:27:02.910 回答
0

查看标题为“布局/母版页方案 - 基础”下的此页面

简而言之,您创建一个主模板并为您的内容将出现的位置插入占位符......

它的工作原理取决于您使用的视图引擎(Razor 等...)

编辑:

WRT History/Back 按钮,您也许可以使用history.js来实现您想要的。请参阅广泛使用它的此站点(它使用 AJAX 加载内容 - 初始加载后基本页面永远不会更改)。

于 2012-04-26T15:17:55.327 回答