有没有办法在运行时读取一些 HTML 并用 PlaceHolder 控件动态替换该 HTML?
例如,我有一些 HTML 包含诸如 ##MainContent## 或 ##SideContent## 之类的标签。
我需要以某种方式找到每个标签并动态添加一个 asp:PlaceHolder 控件。
编辑 - 这样做的原因是读取 HTML,然后将控件动态添加到页面的一部分。我正在尝试创建一个 CMS 系统,尽管我不确定这是最好的方法。
有没有办法在运行时读取一些 HTML 并用 PlaceHolder 控件动态替换该 HTML?
例如,我有一些 HTML 包含诸如 ##MainContent## 或 ##SideContent## 之类的标签。
我需要以某种方式找到每个标签并动态添加一个 asp:PlaceHolder 控件。
编辑 - 这样做的原因是读取 HTML,然后将控件动态添加到页面的一部分。我正在尝试创建一个 CMS 系统,尽管我不确定这是最好的方法。
我希望这是一个思想练习。:)
理想情况下,您应该只用<asp:PlaceHolder>
控件替换标记中的这些标签。如果您不能这样做(无论出于何种原因),请尝试用<asp:Literal>
控件替换它们:
<asp:Literal ID="litMainContent" runat="server" Text="##MainContent##"><asp:Literal>
<asp:Literal ID="litSideContent" runat="server" Text="##SideContent##"><asp:Literal>
这样,它们仍然会像现在一样在页面上呈现。然后你应该能够在你的代码隐藏中使用litMainContent
和:litSideContent
对于 VB.Net:
Dim phMainContent As PlaceHolder = New PlaceHolder
Dim phMainContent As PlaceHolder = New PlaceHolder
litMainContent.Controls.Add(phMainContent)
litSideContent.Controls.Add(phSideContent)
对于 C#.Net
PlaceHolder phMainContent = new PlaceHolder();
PlaceHolder phMainContent = new PlaceHolder();
litMainContent.Controls.Add(phMainContent);
litSideContent.Controls.Add(phSideContent);