发送邮戳时使用循环

时间:2011-05-17 12:37:30

标签: c# asp.net razor

我正在尝试向我网站的用户发送电子邮件,其中包含订单详情。该电子邮件将显示用户订购的项目列表。在网页上,我使用foreach循环显示项目列表。 当我在邮戳邮件中尝试这个时,它会给出错误:“无效的表达术语'foreach'”。 我不知道如何继续这一点,并没有太多的邮戳文件可以提供帮助。

我的代码:

    //database query
PostmarkMessage cmessage = new PostmarkMessage
{
From = "server@server.co.uk",
To = "user@user.co.uk",
Subject = "Thank you! " + ordernumber,
HtmlBody = "<h2>Your Order:" + ordernumber + "</h2><br />" + 
 foreach (var o in order)//error here
 {
  <div>
  <div>@o.to_ChooseCanvasSize</div><div>&pound;@o.to_Price</div>
  <div>@o.to_Amount</div><div>&pound;@o.to_ItemTotalPrice</div></div>
  }
  "end!",
 };

我在C#和ASP.NET网页上工作。 感谢

1 个答案:

答案 0 :(得分:2)

您需要使用StringBuilder和单独的循环手动汇编字符串,然后将HtmlBody属性设置为生成的字符串。

或者,如果您真的在Razor页面中,则可以使用inline helper

HtmlBody = new Func<object, HelperResult>(@<text>
    <h2>...</h2>
    @foreach(...) { ... }
</text>)(null).ToString()