簡體   English   中英

使用 SendGridMessage 將模型值插入動態模板

[英]Interpolate model values into dynamic template using SendGridMessage

我正在構建我的電子郵件以使用SendGrid 庫SendGridMessage對象發送。

我將我的值定義為我使用 SendGridMessage 的SetTemplateData()方法注入的匿名類型:

var mail = new SendGridMessage
{
    Attachments = new List<Attachment>(),
    From = new EmailAddress()
    {
        Email = emailConfig.FromAddress,
        Name = $"Redacted on behalf of {booking.Member.Client.Name}"
    },
    TemplateId = EmailConstants.ConfirmationEmailTemplateId,
    Subject = "Redacted"
};

mail.Personalizations = new List<Personalization>() {
    new Personalization() {
        Tos = new List<EmailAddress>() {
            new EmailAddress() {
                Email = memberEmail,
                Name = memberName
            },
        }
    }
};
var data = new
{
    memberName = memberName,
    dateOfAppointment = booking.Date.ToString("dd MMM yy"),
    timeOfAppointment = booking.Date.ToString("HH:mm"),
    questionnaireLink = questionnaireLink
};
mail.SetTemplateData(data);

電子郵件發送得非常好,但在電子郵件模板中,我的標簽{memberName}{dateofAppointment}等並沒有被此處指示的值替換。

我找到了車把,但沒有使用它們的 C# 指南; 我假設我在上面提交的數據只要我在模板中得到正確的標簽就可以工作......我是對的嗎?

如何用我的數據值替換動態模板中指定的標簽( {memberName}{dateofAppointment}等)?

確保您的模板包含使用雙括號語法的標簽,例如{{memberName}} {memberName} (單括號)不起作用。

Handlebars 語法的 SendGrid 文檔中

<!-- Template -->
<p>Hello {{ firstName }}</p>
// Test data
{ "firstName": "Ben" }
<!-- Resulting HTML -->
<p>Hello Ben</p>

如果在模板中正確使用此語法,您問題中的代碼將正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM