InnerHtml HtmlDocument не меняется - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь создать шаблон электронной почты, используя html agility pack.Сначала я получаю базовый макет:

public static HtmlDocument GetLayout()
        {
            string path = @"Modules\RoomBookingShared\Resources\EmailTemplate.html";
            HtmlDocument document = new HtmlDocument();
            document.Load(path);
            return document;
        }

С созданным HtmlNode я пытаюсь записать его во внутреннюю часть определенного элемента в Html.

        public static HtmlDocument SetBody(string body, HtmlDocument document)
        {
            string path = @"Modules\RoomBookingShared\Resources\test.html";
            HtmlDocument item = new HtmlDocument();
            item.Load(path);

            document.GetElementbyId("body-area").ChildNodes.Add(item.DocumentNode);
            FileStream sw = new FileStream("FileStream.html", FileMode.Create);
            document.Save(sw);
            return document;
        }

Этоне устанавливает, а просто отправляет файл макета.Что странно, если я записываю файл (см. Код файлового потока), он правильно записывает файл Html.

Вывод, который должен быть добавлен (без данных), следующий:

<table cellspacing="0" cellpadding="0" border="0">    
    <tr>
        <td class="fallback-text maven" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; background-color: #343A40; border: 1px solid #454D55; color: white; text-align: center;">Location</td>
        <td class="fallback-text titillium" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; border: 1px solid #DEE2E6;"></td>
    </tr>
    <tr>
        <td class="fallback-text maven" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; background-color: #343A40; border: 1px solid #454D55; color: white; text-align: center;">Date & Time</td>
        <td class="fallback-text titillium" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; border: 1px solid #DEE2E6;"></td>
    </tr>
    <tr>
        <td class="fallback-text maven" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; background-color: #343A40; border: 1px solid #454D55; color: white; text-align: center;">Required </td>
        <td class="fallback-text titillium" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; border: 1px solid #DEE2E6;"></td>
    </tr>
    <tr>
        <td class="fallback-text maven" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; background-color: #343A40; border: 1px solid #454D55; color: white; text-align: center;">Attendees</td>
        <td class="fallback-text titillium" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; border: 1px solid #DEE2E6;"></td>
    </tr>
    <tr>
        <td class="fallback-text maven" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; background-color: #343A40; border: 1px solid #454D55; color: white; text-align: center;">Booking Reason</td>
        <td class="fallback-text titillium" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; border: 1px solid #DEE2E6;"></td>
    </tr>
    <tr>
        <td class="fallback-text maven" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; background-color: #343A40; border: 1px solid #454D55; color: white; text-align: center;">Reference</td>
        <td class="fallback-text titillium" style="padding: 10px 25px 10px 25px; mso-height-rule: exactly; border: 1px solid #DEE2E6;"></td>
    </tr>
</table>

Кто-нибудь может увидеть, что я делаю не так?

1 Ответ

0 голосов
/ 11 июля 2019

Кажется, проблема связана с ParsedText и Text. Чтобы это исправить, мне пришлось использовать следующее:

Body = final.DocumentNode.OuterHtml;
...