更换不按预期工作,剃刀引擎插入不需要的时间

时间:2016-05-06 14:11:50

标签: c# .net razor replace

我有一个使用剃刀引擎生成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);
            }
        }

0 个答案:

没有答案