我有一个问题。我想在我的应用程序中设置母版页。由于我有太多的 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 页面?