mustache-sharp渲染邮件模板时重复空行问题求助
解决mustache-sharp模板渲染邮件时换行重复的问题
方案1:简化模板,移除多余的newline标签
你的模板中{{#newline}}和文本自带的换行叠加,导致重复空行。直接用原生换行替代标签,就能按预期渲染:
Good Day, The following asset has been retired by {{Actor}}: {{AssetNumber}}: {{AssetDescription}} Date retirement: {{DateRetired:dd.MM.yyyy}} Comment: {{Comment}} Best Regards Team Finances Link: {{SystemUrl}}
方案2:自定义newline标签的输出行为
如果必须保留newline标签,可以在mustache-sharp中注册自定义Lambda,强制只输出单个换行:
var compiler = new FormatCompiler(); compiler.RegisterTag("newline", (writer, args, context) => { writer.Write(Environment.NewLine); }); // 使用自定义编译器渲染模板 var template = compiler.Compile(yourTemplateContent); var result = template.Render(yourDataModel);
方案3:适配邮件格式要求
如果是邮件客户端解析问题(比如纯文本邮件对换行的处理),可以:
- 若为HTML邮件,用
<br>标签替代换行(需调整模板为HTML格式) - 若为纯文本邮件,确保模板中仅保留必要的单个换行,避免标签与原生换行叠加
内容的提问来源于stack exchange,提问作者marc_s
相关产品推荐
相关产品推荐

