Asp.net 从iFrame中查找母版页控件

Asp.net 从iFrame中查找母版页控件,asp.net,master-pages,Asp.net,Master Pages,情景: 我有一个主页面说主页面1。在母版页中,我有一个拆分器。在该拆分器中有一个iframe。在这个iframe中,我们加载另一个母版页,比如母版页2。在MasterPage2中,我们加载一个页面,在该页面上呈现不同的用户控件 问题: 现在我想从MasterPage2页面上加载的用户控件中找到MasterPage1上的控件 请帮助……解决方案中的问题: 母版页和内容页作为单个对象呈现,因此page类能够引用objectsmaster和内容页中的每个元素。呈现iframe时,客户端会请求ifram

情景:

我有一个主页面说主页面1。在母版页中,我有一个拆分器。在该拆分器中有一个iframe。在这个iframe中,我们加载另一个母版页,比如母版页2。在MasterPage2中,我们加载一个页面,在该页面上呈现不同的用户控件

问题:

现在我想从MasterPage2页面上加载的用户控件中找到MasterPage1上的控件

请帮助……

解决方案中的问题:

母版页和内容页作为单个对象呈现,因此page类能够引用objectsmaster和内容页中的每个元素。呈现iframe时,客户端会请求iframe内容,因此不存在引用。所以不可能在服务器上相互引用

问题的解决办法

从上面你一定已经意识到所有的问题都是参考,所以你必须破解它。我能想到的最简单的方法就是使用querystring。 使用包含标识符的querystring调用iframe页面到母版页,如mpage=mpage1、mpage=mpage2等。 现在在masterpage2中,请求查询字符串以查找应用了哪个masterpage2并继续。这样你就不会有什么放松,因为masterpage1的内容无法更改,但masterpage2可以更改

现在你需要更多的工作来满足你的需要。只有当这是解决真正问题的唯一方法时,才能继续。我认为问题不是母版,而是问题的解决方案,它促使你去做这些奇怪的事情。 为此,您必须使用javascript和处理程序来呈现并返回呈现的usercontrol。但我认真地说,不要在生产中使用此设置,而是通过将代码更改为使用usercontrol而不是iframe来寻找其他替代方法