【发布时间】:2017-10-03 23:21:16
【问题描述】:
我在 Visual Studios c# 中构建的应用程序遇到了一个小问题。我有一个 WebBrowser,它会在您发送之前显示一封电子邮件以供预览,我正在尝试使用字符串替换来自动在预览窗口中设置电子邮件的一些详细信息。
EmailTemplateConfigClass 有一个公共列表获取和设置属性
public List<HeaderFooterReplacement> HeaderFooterReplacements { get; set; }
我正在使用 foreach 获取 HeaderFooterReplacements 并访问它们的 (Placeholder/Value) 属性。
namespace EmailApp.Model
{
public class HeaderFooterReplacement
{
public string Placeholder { get; set; }
public string Value { get; set; }
}
}
然后使用 if 条件将占位符与预设的 html 电子邮件模板匹配,在电子邮件中找到相同的文本并使用 (.Replace) 将其替换为值。
private void PopulatePreview()
{
foreach (var HeaderFooterReplacement in EmailTemplateConfig)
{
if (headerFooterContents == HeaderFooterReplacement.Placeholder)
{
headerFooterContents.Replace("##HEADER_PHONENUMBER##", HeaderFooterReplacement.Value)
.Replace("##HTML_TITLE##", HeaderFooterReplacement.Value)
.Replace("##EMAIL_HEADING##", HeaderFooterReplacement.Value);
}
}
WebBrowser1.DocumentText = headerFooterContents;
}
最后我将网络浏览器预览文本设置为替换完成后的 html,没有控制台错误,并且在调试模式下一切似乎都正常,除非我预览电子邮件它仍然显示占位符,例如##EMAIL_HEADING##。
有什么想法吗?另外,如果您需要澄清任何事情,请询问。
谢谢
【问题讨论】:
标签: c# html string list replace