在代码隐藏中获取div及其子代,并在不丢失样式的情况下邮寄它

时间:2014-09-18 10:21:38

标签: c# asp.net html5 html-email

我有一个带有这个正文的.aspx页面:

<form id="form1" runat="server">
        <%= this.OutputHtml  %>

    <CKEditor:CKEditorControl ID="CKEditor1" BasePath="/ckeditor/" runat="server" StylesSet="width: 0px; height: 0px;"></CKEditor:CKEditorControl>

    <asp:TextBox ID="MessageBuffer" runat="server" Text="" />

    <input type="button" id="Prepare_Mail" name="Prepare_Mail" runat="server" value="Prepare Mail" />
    <asp:Button ID="SendMail" runat="server" Text="Send Test Mail" OnClick="SendMail_Click" />

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
        $( '#Prepare_Mail' ).click(function() {
            alert( "Handler for .ckicl() called." );
            $('#MessageBuffer').val($('#nl'));
        });
    </script>
</form>

字符串OutputHtml是我的HTML-Markup,几乎可以使用inline-ckeditor完全编辑。 我得到这样的OutputHTML:

    protected void Page_Load(object sender, EventArgs e)
    {
        StreamReader sr = new StreamReader(Server.MapPath("~/TextFiles/template2.txt"));
        String OutputHtml = sr.ReadToEnd();
        sr.Close();
    }

我正在尝试访问ID为“nl”的DIV-Box,这是我模板文件中的主要容器。你在第一个代码框的底部看到一个小脚本,它不起作用。我不知道为什么,但脚本甚至没有在“Prepare_Mail”的按钮点击开始。

至于我是asp的新手,我不知道该怎么做:

  • 在代码隐藏
  • 中的字符串变量中获取div“nl”及其所有子内容
  • 通过电子邮件发送(发送邮件不是问题,但保留样式)

我希望我提供了足够的信息来帮助您解决这个问题。感谢

2 个答案:

答案 0 :(得分:0)

如果你想要一个div的全部内容添加一个runat =&#34;服务器&#34;属性为de div,als确保ID属性使用大写字母输入。像这样:

<div ID="NL" runat="server">

在后端:

string divContent = NL.innerHtml 

保持风格是个问题。您无法发送CSS文件,因此您必须使用内联CSS。并非一切都得到支持所以请看一下:

https://www.campaignmonitor.com/css/

看看你能做些什么。

答案 1 :(得分:0)

你必须使用内联Css为你工作你不记得发送Css文件