【问题标题】:c# Matching placeholders to text.html and replacingc#将占位符匹配到text.html并替换
【发布时间】: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


    【解决方案1】:

    排队

    if (headerFooterContents == HeaderFooterReplacement.Placeholder)
    

    您正在将整个内容与占位符进行比较。此外,Replace 返回字符串,并且不会替换原始字符串中的值,您必须再次分配 headerFooterContents。你的foreach 循环应该是这样的:

    foreach (var HeaderFooterReplacement in EmailTemplateConfig)
    {
        if (headerFooterContents.Contains(HeaderFooterReplacement.Placeholder))
        {
            headerFooterContents = headerFooterContents.Replace(HeaderFooterReplacement.Placeholder, HeaderFooterReplacement.Value);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 2019-04-08
      • 2012-07-16
      • 2022-11-25
      • 2017-09-11
      • 2013-01-24
      • 1970-01-01
      相关资源
      最近更新 更多