从我已经读过的内容看来这似乎是不可能的,但是我想知道是否有人在他们的袖子上或者至少有一个明确的“不”。
据说主页实际上只是内容页面的控件,实际上并不是内容页面的“主”。如果我想从一个内容页面转到另一个具有相同母版页的内容页面,我只想说
Response.Redirect("PageB.aspx");
但这会立即导致回发,闪烁页面,这是一种糟糕的前阿贾克斯做事方式。
在这个当前项目中,我试图看看如果在主页面上单击一个按钮时,我是否能够异步地更改主页面中ContentPlaceHolder的当前内容页面。
这是可能的,如果是这样的话?
答案 0 :(得分:1)
我不知道你是否可以在页面之间(.aspx),但它绝对可以使用UserControls完成。
ASP.Net页面每个都有自己的URL,所以你要做的就是从一个URL转到另一个URL而不进行任何回发,这不是它应该如何工作。
使用用户控件(.ascx):
创建一个使用MasterPage的页面,并在内容中使用类似的内容
<ajax:UpdatePanel ...>
<ContentTemplate>
<asp:PlaceHolder ...>
</ContentTemplate>
</ajax:UpdatePanel>
搜索UpdatePanel并调整其设置以执行您想要的操作,然后了解如何在占位符中交换用户控件。
答案 1 :(得分:0)
否,你不能,因为母版页实际上是在特定的aspx页面上呈现的控件,而不是实际包含aspx页面,因为它看起来似乎是以编程方式和设计视图。
更多信息:
但是,您可以使用各种其他控件来模拟此效果。 asp:MultiView控件就是一个例子,每个“页面”可以在一个视图中制作并放置在更新面板中,从而允许它异步切换。或者,您可以在单独的用户控件中定义每个页面,并将它们放在更新面板中,根据需要异步切换这些控件上的visible属性。
实现类似于更改母版页内容占位符的效果的方法确实有很多种。