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您必须像这样转义引号:”代码>