代码之家  ›  专栏  ›  技术社区  ›  Wael Dalloul

在页之间导航时停止母版页刷新?

  •  7
  • Wael Dalloul  · 技术社区  · 16 年前

    我在我的asp.net应用程序中使用母版页,在母版页中我在更新面板中放置了一个contentplaceholder来支持子页中的ajax,问题是如何在页之间导航时停止刷新“母版页控件”?

    在我尝试使用的页面之间导航 响应。重定向 , windows.位置 没有成功的Java脚本,我应该使用框架或IFrAMS而不是母版页来停止刷新吗?

    如有任何解决此问题的建议,将不胜感激,谢谢…

    3 回复  |  直到 16 年前
        1
  •  5
  •   awe    16 年前

    如果在“页面”之间切换时不希望页面刷新,则使用母版页将没有任何好的解决方案。正如其他人用不同的词所说,母版页只是不同页面使用的一个通用“模板”。两者之间的导航就像调用不同的页面一样,当然会重新加载整个页面,包括母版页内容。

    1. 我在ajax中使用的解决方案是 将每个“页面”作为用户 控件,并将它们全部放入 更新面板 visible="false" . 然后,对于“页面”之间的导航,请切换 用户控件的可见性 显示右边的“页面”控件。

    2. 另一种方法是使用iframe。

    这些解决方案都不使用母版页。

    在ajax被引入asp.net之前,母版页的概念是为了简化常见的外观。在ajax流行之后,不刷新整个页面的需求变得更加普遍。

        2
  •  2
  •   Joop    16 年前

    母版页只不过是用应用程序的默认布局(大多数情况下)扩展“普通”页面。母版页和内容占位符呈现为完整的HTML页。在页面之间导航时,整个页面都会刷新正常行为。这就是网络的工作原理。

    使用iframe可以解决您的问题。不过,这还有其他一些副作用:

    1. 整个主页不再有用了。iframe周围的内容是“母版页”。

    2. 对于母版页,您实际上可以浏览到另一个url,您还可以在浏览器的url栏中看到。使用iframe时,可以在iframe中导航到另一个页面。浏览器中的URL将保持不变。当应用程序的用户点击刷新按钮时,它总是从您在html中分配给iframe的默认页面重新开始。当然有一些解决办法

    不管怎样。这真的取决于你的申请。有多种解决方案可以解决刷新行为。

        3
  •  1
  •   mamoo    16 年前

    有一个你解释过的结构:

    • 主人
      • 子页1
      • 子页2

    然后,当您从第1页切换到第2页等时,您无法阻止页面刷新,因为当页面呈现到浏览器时,您只有一个“页面”实体(母版内容+所选页面内容)。

    如果你想在同一个页面中切换不同的应用程序视图(这样可以防止页面刷新),你可以在一个updatepanel中使用一个页面(master变得非常无用)来加载不同的视图。

    你也可以使用iframe,但是如果你必须处理页面不同部分(其中一些在iframe中)之间的任何类型的通信,我个人建议不要使用它们。