【问题标题】:Using a loop when sending a Postmark message发送邮戳消息时使用循环
【发布时间】:2011-05-17 12:37:30
【问题描述】:

我正在尝试向我网站的用户发送一封包含订单详细信息的电子邮件。该电子邮件将显示用户已订购的商品列表。在网页上,我使用显示项目列表的 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 网页。 谢谢

【问题讨论】:

  • 您的语法完全无效。你不能那样做。
  • 你确定foreach中的cod是正确的,你需要一个变量吗?像一个字符串或字符串生成器......并在那里做工作......

标签: c# asp.net razor


【解决方案1】:

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

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

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

【讨论】:

  • 我在一个 .cshtml 页面中。我知道语法无效,但无法理解正确的方法。 :-( 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 2020-12-04
  • 1970-01-01
相关资源
最近更新 更多