【发布时间】:2011-12-08 18:01:45
【问题描述】:
我已经搜索了这个问题的答案,但我只提出了两种可能性,这两种可能性我都不是很热衷。
我有一个现有的 ASP.NET MVC 应用程序,我们将在其中添加一个模块。这个模块也可以与我们拥有的另一个产品共享,因为它涵盖了很多共同点。我不想为两个独立的网站重写这个模块(甚至只是 UI 部分)所以我最初的想法是我们只是将它开发为一个独立的网站(并且因为我们的产品套件支持跨平台的单点登录)该套件不必再次登录到新站点没有问题)。但是,有人告诉我,它必须看起来像是现有站点的一部分,它必须位于自己的选项卡内(母版页有选项卡可以向您显示您所在站点的哪个部分),因为它就是这样已上市 - 现有产品的集成组件。
所以,我在考虑如何让这个网站位于现有网站的标签内。
我认为最简单的就是 iframe。我们已经在另一个选项卡上找到了一个 iframe(尽管它属于同一个项目 - 一些依赖与 MVC 不兼容的第三方控件的遗留 Web 表单内容)并且它可以工作......在一定程度上(它实际上是一个丑陋的解决方案和下一个版本的计划摆脱它)。我不想再这样做了。
另一个想法是,在选项卡的内容区域内只有一个 div,当用户通过这个新模块的工作进行时,我可以使用 AJAX 调用替换内容,因此它看起来像是一个无缝站点。再一次,这让我充满了恐惧,因为我认为它不会很好地工作......当然我们会在谷歌分析等领域输掉(我们要么完全输掉,要么我们不得不手工制作位)并允许用户为页面添加书签(他们看到的唯一 URL 是打开选项卡时的第一个 URL,因为之后的所有内容都由 AJAX 调用组成。
有没有人对如何进一步追求这一点有任何建议?有没有办法让第一个 ASP.NET MVC 应用程序提供第二个将使用的母版页?或者是否有类似的反向机制,我可以让第一个 ASP.NET MVC 应用程序使用第二个作为内容提供者进入第一个母版页?
还是我的现实选择是 IFrame 或 AJAX 调用?
【问题讨论】:
-
我在 google 上没有看到任何内容,但您可以使用 jquery 历史插件或父窗口中的 url 哈希来跟踪 iframe 的位置。这将允许用户为 iframe 页面添加书签。
标签: asp.net-mvc ajax iframe master-pages