Рендеринг HTML внутри части представления без эффекта других тегов - PullRequest
0 голосов
/ 05 сентября 2018

Просто я хочу визуализировать часть тела письма изнутри, и моя проблема в том, когда стили тела письма влияют на другую HTML-часть моей страницы.

    <div class="col-md-12 m-b-5">
        <div id="email" dir="ltr">
            @Html.Raw(ViewBag.Body)
        </div>
    </div>

Я не знаю, что такое рендеринг внутри div-адреса электронной почты, и хочу, чтобы все, что на этом изображено, просто рендеринг внутри этого div-элемента не влиял на другую часть страницы.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете просто удалить все недопустимое содержимое, прежде чем установить Viewbag.body для плагина outlook. Я использую этот код, чтобы отфильтровать некоторые сгенерированные вещи. У меня была проблема со встроенными изображениями, поэтому я использовал регулярное выражение для их фильтрации. Может быть, вы можете сделать что-то подобное?

            var reg = new Regex("<img[^>]+['\"][^>]*>");
            var matches = reg.Matches(message.Body);
            foreach (var match in matches)
            {
                body = body.Replace(match.ToString(), "");
            }

Редактировать

когда вы смотрите на источник письма (outlook html форматированные письма), вы видите множество CSS-классов и правил, определенных в начале письма. Фактическое письмо начинается с тега body (screen). так что вы можете просто взять данные внутри тега body и отобразить, что enter image description here

...