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