【问题标题】:Smart.Format version 2.5.0 error once upgradedSmart.Format 版本 2.5.0 升级后出错
【发布时间】:2020-01-22 00:38:22
【问题描述】:

我刚刚从 smart.format 2.4.2 升级到 2.5.0。自 2018 年以来,我有以下产品投入生产:

attFilePath = "C:/dev/template.html" //HTML TEMPLATE WITH PLACEHOLDERS IN IT LIKE, Welcome {FirstName})
Smart.Default.Parser.UseAlternativeEscapeChar('\\');
var myTemplate = File.ReadAllText(attFilePath); 
request.AddParameter(emailMessage.MessageIsBodyHtml ? "html" : "text", Smart.Format(File.ReadAllText(attFilePath), passengerTemplateValues));

最后一条指令将 html 作为字符串读取并应用 smart.format 以使用实际数据更改占位符。一切正常,直到我决定升级到 2.5。我得到的错误是“有 56 个问题,选择器中的字符无效”。实际上它不能用占位符解析 html 的实际变化是什么?我更改为 2.4.2,现在一切正常。

【问题讨论】:

  • 请使用您已经提供的代码以模板的形式提供minimal reproducible example,该模板会导致 2.5.0 出现错误,但不会出现 2.4.2 错误。另外,查看change log 并查看其中提到的任何更改,尤其是重大更改,是否可能与该错误有关。

标签: c# .net string-formatting smartformat.net


【解决方案1】:

虽然处理纯 HTML 绝对可以正常工作,但使用 CSS 和/或 JavaScript 的结果变得不可预测。原因是:Smart.Format 使用大括号来标识占位符,它们同时也是 CSS/JavaScript 表示法的一部分。 在Smart.Format Wiki中发布了解决方案

【讨论】:

    【解决方案2】:

    更改日志中断更改有助于解决问题!必须先阅读!

    【讨论】:

    • 你能详细说明一下吗?这两个版本之间的哪些具体变化导致了您的问题,解决方法是什么?
    猜你喜欢
    • 2021-11-11
    • 1970-01-01
    • 2017-09-05
    • 2021-11-16
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多