在视图的一部分内部渲染HTML而不影响其他标记

问题描述 投票:0回答:1

简单地说,我想在视图中呈现电子邮件的正文部分,我的问题是当电子邮件正文的样式影响我页面的其他html部分时。

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

我不知道什么是电子邮件div内的渲染,并希望这一切只是在这个div内部渲染而不影响页面的其他部分。

html css asp.net-mvc user-interface mailkit
1个回答
0
投票

您可以在为outlook插件设置Viewbag.body之前删除所有无效内容我使用此代码过滤掉一些生成的内容。我遇到的问题是嵌入式图像,所以我使用正则表达式来过滤它们。也许你可以做类似的事情?

            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标签(屏幕)开头。所以你可以抓住body标签内的数据并显示enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.