应用于母版页的内容页面样式

时间:2013-07-10 12:41:40

标签: c# asp.net master-pages

我有一个母版页和一个内容页面。内容页面内容是动态的,是HTML(html Mail)。内容从DB中获取并动态显示。这就是“查看源”页面的样子。

<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;

我的问题是,动态内容有自己的风格,它正在被母版页复制,搞乱我的母版页面样式,背景,字体等。我希望内容页面在它自己的stye中而不影响母版页。怎么做到这一点?

2 个答案:

答案 0 :(得分:1)

我建议您将内容页面内容放入div,并为其指定页面样式。然后为innerHtml容器设置mailBody

<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>"

答案 1 :(得分:1)

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

<iframe src="mailbody.asp"></iframe>