C# 从视图接收html字符串以替换为模板

C# 从视图接收html字符串以替换为模板,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个控制器,可以执行电子邮件服务,如: var englishtemplatePath = "HtmlTemplate/EnglishTemplate.html"; var englishTemplate = Path.Combine(_hostingEnvironment.WebRootPath, englishtemplatePath); var englishFileContent = System.IO.

我有一个控制器,可以执行电子邮件服务,如:

var englishtemplatePath = "HtmlTemplate/EnglishTemplate.html";
                    var englishTemplate = Path.Combine(_hostingEnvironment.WebRootPath, englishtemplatePath);
                    var englishFileContent = System.IO.File.ReadAllText(englishTemplate);
                    var englishEmailTemplate = new EmailTemplateModel
var englishEmailTemplate = new EmailTemplateModel
                    {
                        CallBackUrl = callbackurl,
                        UrlText = "text1",
                        WelcomeText = "text2",
                        VerifyText = "text3",
                        VerifyNowText = "ACTIVATE",
                        TroubleText = "text4",
                        Footer = "text5"
                    };
然后我有一个发送电子邮件的服务,如下所示:

public async Task Execute(string email, string subject, EmailTemplateModel model, string template)
        {
            try
            {
                string toEmail = string.IsNullOrEmpty(email)
                                 ? _emailSettings.ToEmail
                                 : email;
                MailMessage mail = new MailMessage()
                {
                    From = new MailAddress(_emailSettings.UsernameEmail, "Subject")
                };
                mail.To.Add(new MailAddress(toEmail));
                mail.CC.Add(new MailAddress(_emailSettings.CcEmail));


                mail.Subject =  subject;

                mail.Body = template.Replace("{{CallBackUrl}}", model.CallBackUrl)
                                    .Replace("{{UrlText}}", model.UrlText)
                                    .Replace("{{WelcomeText}}", model.WelcomeText)
                                    .Replace("{{VerifyText}}", model.VerifyText)
                                    .Replace("{{VerifyNowText}}", model.VerifyNowText)
                                    .Replace("{{TroubleText}}", model.TroubleText)
                                    .Replace("{{CallBackUrl}}", model.CallBackUrl)
                                    .Replace("{{Footer}}", model.Footer);

                mail.IsBodyHtml = true;
                mail.Priority = MailPriority.High;

                using (SmtpClient smtp = new SmtpClient(_emailSettings.PrimaryDomain, _emailSettings.PrimaryPort))
                {
                    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials = new NetworkCredential(_emailSettings.UsernameEmail, _emailSettings.UsernamePassword);
                    smtp.EnableSsl = true;
                    await smtp.SendMailAsync(mail);
                }
            }
            catch (Exception ex)
            {
                //do something here
            }
        }
如您所见,我从模型接收参数,并将其替换到模板中,其中的参数如下:

{{CallBackUrl}}
它工作得很好,但现在我想接收如下html表:

<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th> 
    <th>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
  <tr>
    <td>John</td>
    <td>Doe</td>
    <td>80</td>
  </tr>
</table>

名字
姓氏
年龄
吉尔
史密斯
50
前夕
杰克逊
94
约翰
雌鹿
80

我怎样才能收到它?用简单的字符串?我把它换成其他的?只是用替换?问候

您是否提到电子邮件将显示原始html? 如果是,您可以将标记表td tr替换为。。
ref:

用你已经做过的方法来做。有什么问题吗?Intto匿名类型我不能这样做:
ProductsTable=“Firstname”
等等。。。我是怎么吃到餐桌的?在样式标记中,我得到“无效的初始值设定项成员声明符”@codingyoshi您必须像这样转义引号: