HTML страница в строку

Я отправляю электронные письма своим пользователям в формате HTML. Там есть много редактирования, например, имя пользователя, день рождения пользователя и многое другое.

Я не хочу, чтобы мой код выглядел так:

String message = "hello " + "David\n" + "congratulation for your " + birthday + "\nPleas visit our site\n" + siteLink + " to get your bonus";

Есть ли какие-либо инструменты C#, которые я могу использовать, чтобы облегчить редактирование?

5 ответов

Решение

Кажется, вы хотите иметь возможность указывать именованные токены в одной строке, чтобы HTML легко читалось и редактировалось, например, так:

"Hello {FirstName},\nPlease visit our site:\n{SiteLink}"

Посмотрите на этот ответ, чтобы узнать, как это сделать: Форматирование именованных строк в C#.

string customBody = "<a href=\"www.oursite.com\">www.oursite.com</a>";
string htmlBody = String.Format("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
        body += "<HTML><HEAD><META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">";
        body += "</HEAD><BODY><DIV>{0}</DIV></BODY></HTML>", customBody);

var message = new MailMessage(from, to);
var mimeType = new System.Net.Mime.ContentType("text/html");
var alternate = AlternateView.CreateAlternateViewFromString(htmlBody, mimeType);
message.AlternateViews.Add(alternate);        
message.IsBodyHTML = true;
smtpClient.Send(message);

Смотрите MSDN:

Вы можете просто назначить HTML-код message body

message.Body = "<b> This is a bold Text </b>";
message.IsBodyHTML = true;

Также вы можете воспользоваться классом MailDefinition. Проверьте эту ссылку для использования этого класса.

Используйте свойство isHtmlBody, из MailMessage

Пример:

MailMessage msg = new MailMessage();
msg.Body= "example of <a href='www.something.com'>Link</a>";
msg.IsBodyHtml = True;
...    
smtp.send(msg)

увидеть:

Свойство IsBodyHtml

пример

string.Format() может быть то, что вы после.

string.Format() заменяет каждый элемент формата в указанной строке текстовым эквивалентом значения соответствующего объекта.

Так, например,

 string.Format("Dear {0} {1}, You are {2} today.",
       person.Title, person.Lastname, person.Age);
Другие вопросы по тегам