【问题标题】:How to create HTML text from C# application?如何从 C# 应用程序创建 HTML 文本?
【发布时间】:2011-01-23 05:00:03
【问题描述】:

我有 C# 应用程序,它必须将一些信息存储到 MS SQL 中 稍后将通过 DB Mail 发送到电子邮件。

在 C# 应用程序中,我有一个具有多个属性的类,我需要使用它来生成电子邮件文本。所以我想要的是设置一个带有变量占位符的模板。我需要将文本创建为 HTML 和纯文本。

  1. 你会使用什么工具和库 推荐HTML?

  2. 是 String.Format() 的最佳替代方案 使用纯文本?

【问题讨论】:

    标签: c# html string text-formatting


    【解决方案1】:

    我在其他应用程序中这样做是通过在某处(SharePoint 列表、数据表)已经以正确的格式提供电子邮件正文,但使用命名占位符,对应于您在应用程序中拥有的信息。 然后发送电子邮件意味着用正确的信息替换占位符。 StringBuilder.Replace 工作正常。

    【讨论】:

    • 将“格式字符串”存储在数据表中而不是直接存储在 C# 程序中有什么好处?如果您修改占位符,您还必须修改 C#。我错了吗?
    • 假设您的数据包括“名字”、“姓氏”等。在外部存储中,您有一个电子邮件模板,其中包含“hello %FirstName%, how are life today?”。在运行时,您将 %FirstName% 替换为“名字”属性并发送结果文本。用户应该可以在不要求您修改应用程序的情况下修改模板。当然,添加新的占位符(例如“中间名”)需要更改应用程序。
    【解决方案2】:

    我想说你需要决定的最重要的事情是何时对文本进行编码。如果您通过电子邮件发送用户提供的文本,您需要在将其包含在电子邮件中之前对其进行 HtmlEncode。只要每个消费者在使用它之前对其进行编码,就可以将其“按收到”存储在数据库中。我通常在从数据库“获取”数据的数据层中执行此操作。

    【讨论】:

    • 是的 HtmlEncode 是要走的路——我在视图层使用它,这样我就可以在较低层(例如业务、服务层)以原始格式操作文本
    猜你喜欢
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2021-12-03
    相关资源
    最近更新 更多