0

我有一个母版页和一个内容页。内容页面内容是动态的并且是 HTML(html Mail)。内容从数据库中获取并动态显示。这就是页面在“查看源代码”上的样子。

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div id="mailBody" runat="server" style="overflow: auto; width: 600px; height: 500px;">
    <!-- Dynamic Content Starts from here-->
        <html>
            <head>
                <style>
                </style>
            </head>
            <body>
                <!--Body goes here-->
            </body>
        </html>
    <!-- Dynamic Content Ends here-->
</div>
</asp:Content>

我正在添加这样的动态内容数据。

mailBody.InnerHtml = mail;

我的问题是,动态内容有它自己的样式,它被母版页复制,并弄乱了我的母版页样式、背景、字体等。我希望内容页有自己的风格而不影响母版页。如何做到这一点?

4

2 回答 2

1

如果 html、style 和 body 标签是存储在数据库中的内容的一部分(一个完整的 html 页面),我认为您将不得不使用 iframe。这意味着您将拥有一些单独的文件,例如 mailbody.asp 来呈现您的动态内容。然后你会从你的母版页中的 iframe 中调用它,就像这样

<iframe src="mailbody.asp"></iframe> 
于 2013-07-10T14:16:44.163 回答
1

我建议将您的内容页面内容放入一个div,例如,并为其分配页面样式。然后innerHtmlmailBody容器设置:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
  <div style="pageStyle">
    <div class='yourDynamicClass' id="mailBody" runat="server" >

    </div>
  </div>
</asp:Content>

并在 .css 文件中定义类或 id。
此外,您可以为 innerHtml 使用一些 html 标签:

mailBody.InnerHtml = "<div class='className'>" + mail + "</div>"
于 2013-07-10T13:20:28.860 回答