0

我有一个问题。我想在我的应用程序中设置母版页。由于我有太多的 aspx 页面,我不想去每个页面并在其中添加 asp:content 标记。我想要一些动态的方式来查看我的页面,复制它的 html/其他 asp 控件并将其添加到动态创建的内容模板中。我知道如何动态创建内容模板。但不知道是否可以复制aspx页面的html并将其添加到内容模板中。

假设,在我的 aspx 页面的代码隐藏中,在 page_PreInit 上,我添加了以下代码。

base.AddContentTemplate("WebHeaderPH", new CompiledTemplateBuilder(new BuildTemplateMethod(this.getControl)));

getControl 是一种包含任何内容(html、文本或可能加载用户控件)的方法。

这样,我将动态添加内容模板。

现在我的 aspx 页面内容如下代码。

<span id="someid" runat="server">blah blah...</span>

现在我想要的是,通过它的 id 获取这个 span 标签,并将它包装在 asp:content 下。或者可能是在上面的getControl方法中。

但是把这个跨度放在页面上,抛出以下错误,

内容控件必须是内容页或引用母版页的嵌套母版页中的顶级控件。

要么我必须在页面上放置asp:content模板。但如果我这样做,那么我不需要动态创建 contentTemplate 或将整个页面保持空白,因为我正在动态创建 contentTemplate。在这两种情况下,我都必须编辑我所有的 aspx 页面。

有没有办法获取页面的 html 并将其添加到contentTemplate而无需编辑 aspx 页面?

4

1 回答 1

0

恐怕您必须手动逐步进行。这确实是一个设计错误,但你不会花那么长时间来改变它们。不幸的是,我也犯了同样的错误,我通过手动编辑我的页面来修复它。

于 2013-06-27T12:28:41.927 回答