我正在寻找使用IFRAME在使用MVC3的所有页面的包装页面中加载整页的替代方法。我需要包装页面进行集中登录和身份验证,并希望在包装器的一部分内动态加载其他页面,就像在WPF中加载模块一样。我以前使用过IFRAME来完成这个,但我想保持导航完好无损(即后退按钮将转到之前加载的“插件”页面而不是前一页的包装器)。我认为我可以通过部分视图完成此操作,但无法找到从完全不同的项目(或从已托管的站点)加载部分视图的方法。有什么想法吗?
答案 0 :(得分:3)
您可以进行ajax调用以从外部站点获取内容并将它们放在父页面html中的所需位置。这可以对页面进行加载。
使用jquery,它将类似于:
$.ajax({
url: 'http://www.externalsite.com',
cache: false,
dataType: "html",
success: function (data) {
$("#divInsideParentPage").html(data);
}
});
答案 1 :(得分:0)
在“布局/母案情景 - 基础知识”标题下查看this page
简而言之,您创建一个主模板并插入占位符以显示您的内容......
它的工作原理取决于你正在使用的视图引擎(Razor等......)
编辑:
WRT历史记录/返回按钮,您可以使用history.js来实现您想要的效果。请参阅广泛使用它的this site(它使用AJAX加载内容 - 初始加载后基页永远不会更改。)