2011-05-17 31 views
0

我試圖發送一封電子郵件給我的網站的用戶與訂單詳細信息。該電子郵件將顯示用戶已訂購的項目列表。在網頁上,我使用了一個顯示項目列表的foreach循環。 當我在我的郵戳電子郵件中嘗試這個時,它會給出錯誤:「無效的表達式'foreach'」。 我不知道如何繼續,並且沒有太多的郵戳文檔可以幫助。發送郵戳時使用循環

我的代碼:

//database query 
PostmarkMessage cmessage = new PostmarkMessage 
{ 
From = "[email protected]", 
To = "[email protected]", 
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

你的語法是完全無效的。你不能那樣做。 – SLaks 2011-05-17 12:39:59

+0

你確定在foreach中的cod是正確的,你需要有一個變量?像一個字符串或字符串生成器...並在那裏做工作... – abmv 2011-05-17 12:41:05

回答

2

您需要使用StringBuilder和單獨的循環手動組裝字符串,然後將HtmlBody屬性設置爲生成的字符串。

另外,如果你在一個剃刀頁真的,你可以使用一個inline helper

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

我在一個.cshtml頁面。我知道這個語法是無效的,但無法讓我的頭腦正確地做到這一點。 :-( 謝謝你的幫助。 – nedlogan 2011-05-17 13:22:39