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

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

0 голосов
/ 04 февраля 2012

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

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

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

Существуют ли какие-либо инструменты C #, которые можно использовать для упрощения редактирования?

Ответы [ 5 ]

2 голосов
/ 04 февраля 2012

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

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

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

1 голос
/ 04 февраля 2012
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:

0 голосов
/ 04 февраля 2012

string.Format () может быть тем, что вы ищете.

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

Например,

 string.Format("Dear {0} {1}, You are {2} today.",
       person.Title, person.Lastname, person.Age);
0 голосов
/ 04 февраля 2012

Использовать свойство isHtmlBody из MailMessage

Пример:

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

см .:

Свойство IsBodyHtml

Пример

0 голосов
/ 04 февраля 2012

Вы можете просто присвоить HTML-код message body

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...