【问题标题】:Replace variables after retrieving string from sql从sql检索字符串后替换变量
【发布时间】:2017-11-09 16:03:02
【问题描述】:

我希望 C# 检测邮件正文中的变量并将它们替换为每个变量在我的方法中已有的值。 我将我的邮件保存在 mysql 中的 TEXT 数据类型中 这就是我保存到我的文本中的内容:

<html>
    <h1>
        <span style='text-decoration: underline;'>
            <strong>Solicitud</strong>
        </span>
    </h1>
    <br/>" + "<body>Blabla" + user.Nombre + " " + user.Apellido + " p<br/>La razón a que: <br />"+ razon+ ".</body>
</html>

我希望它替换 user.Nombre user.Apellido 和 razon,它们是方法中已经可用的变量

例如,如果我的方法有:

  • user.Nombre = "MATT";
  • user.Apellido ="CASA";
  • razon = "为什么不呢?";

然后检测我将拥有的变量:

    <html>
    <h1>
        <span style='text-decoration: underline;'>
            <strong>Solicitud</strong>
        </span>
    </h1>
    <br/>" + "<body>Blabla" + "MATT"+ " " + "CASA" + " p<br/>La razón a que: <br />"+ "Why not?"+ ".</body>
</html>

问题是让 C# 检测到字符串中已经有变量。

【问题讨论】:

    标签: c# mysql


    【解决方案1】:

    如果我正确理解了您的问题,鉴于您使用的英语很难。

    您想替换从数据库中检索到的字符串的一部分吗?

    您可以像下面的示例一样执行字符串替换。

    string email = emailAsString.Replace("+ user.Nombre +", variable1);
    

    如果您愿意,可以在此处阅读更多相关信息。

    String Replace - https://www.dotnetperls.com/replace

    【讨论】:

    • 对不起,现在我已经编辑过了,我的问题是让 C# 检测到字符串里面已经有代码,而不是一个字符块
    【解决方案2】:

    在网上广泛搜索,有一种手动编译的方法,但它非常危险,所以我决定使用 String.Format ,我的邮件模板将“+变量+”交换为 {#} Interpolating a string stored in a database

    检索后使用: var formatedString= String.Format(string , variables);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      相关资源
      最近更新 更多