#c# #asp.net #razor
#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>amp;pound;@o.to_Price</div>
<div>@o.to_Amount</div><div>amp;pound;@o.to_ItemTotalPrice</div></div>
}
"end!",
};
Я работаю на C # и ASP.NET Веб-страницы.
Спасибо
Комментарии:
1. Ваш синтаксис полностью неверен. Вы не можете этого сделать.
2. вы уверены, что код в foreach правильный, вам нужна переменная? как строка или конструктор строк… и выполняйте работу там…
Ответ №1:
Вам нужно вручную собрать строку, используя StringBuilder
и отдельный цикл, затем присвоить HtmlBody
свойству сгенерированную строку.
В качестве альтернативы, если вы действительно находитесь на странице Razor, вы могли бы использовать встроенный помощник:
HtmlBody = new Func<object, HelperResult>(@<text>
<h2>...</h2>
@foreach(...) { ... }
</text>)(null).ToString()
Комментарии:
1. Я нахожусь на странице .cshtml. Я знал, что синтаксис неверен, но не мог разобраться в правильном способе это сделать. 🙁 Спасибо за вашу помощь.