我有一个使用剃刀引擎生成html模板的类,似乎存在一些问题,其中一些链接(锚点或图像)有一个额外的句点插入到地址中,通常在www。部分使链接无法使用。
关于它何时或何地执行此操作似乎没有任何押韵或理由,有时它可以正常工作,有时其他几个链接都有此问题。
因此,当我将模板作为字符串返回然后作为电子邮件发送时,我调用如下所示的替换:
var fixedTemplate = template.Replace("www..", "www.");
但这不起作用。我以前从未遇到过这个问题。字符串非常大,这会导致替换函数出现问题吗?
我怎么能
a)修复剃刀引擎,以便不再在链接中添加这些随机时段
或者
b)找出替换功能为什么不替换所有出现的原因。
我的课程中为了完整性而调用的代码示例。
// nt = class associated with template
using (TemplateService templateService = new TemplateService())
{
string html = templateService.Parse(File.ReadAllText(nt.TemplateFilePath), nt, null, null);
var pm = new PreMailer.Net.PreMailer(html);
//inline css styles with premailer
Emailer.SendTestEmail(pm.MoveCssInline().Html, emailAddress, "Test Email: " + campaign.Title);
pm = null;
}
以及名为
的电子邮件代码public static void SendTestEmail(string template, string emailAddress, string subject)
{
var updatedTemplate = template.Replace("www..", "www.");
var email = new MailMessage
{
Body = updatedTemplate,
Subject = subject,
IsBodyHtml = true,
From = new MailAddress("noreply@mydomain.com")
};
email.To.Add(emailAddress);
using (var smtpClient = new SmtpClient())
{
smtpClient.PickupDirectoryLocation = "M:\\Pickup";
smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
smtpClient.Send(email);
}
}