как отобразить html-письмо в asp.net


Я пытаюсь удалить html-письмо в представлении razor из System. Net. Mail. AlternatView. I не могу найти в интернете ничего, что говорит, как это сделать. everytihng связан с созданием электронных писем, а не их отображением.

Кто-нибудь может помочь?

Я пробовал такие вещи, как:

 @{var stream = Model.AlternateViews[0].ContentStream;
  using (StreamReader reader = new StreamReader(stream))
  {
      Html.Raw(reader.ReadToEnd());
      Html.Display(reader.ReadToEnd());
  }

Я не уверен, как извлечь содержимое html или как его отобразить, хотя

Спасибо

1 2

1 ответ:

На основе этого извлечения AlternateView из электронной почты ответа вы можете просто иметь функцию, чтобы получить поток в виде строки

   public string ExtractAlternateView()
    {
        var message = new System.Net.Mail.MailMessage();
        message.Body = "This is the TEXT version";

        //Add textBody as an AlternateView
        message.AlternateViews.Add(
            System.Net.Mail.AlternateView.CreateAlternateViewFromString(
                "This is the HTML version",
                new System.Net.Mime.ContentType("text/html")
            )
        );

        var dataStream = Model.AlternateViews[0].ContentStream;
        byte[] byteBuffer = new byte[dataStream.Length];
        return System.Text.Encoding.ASCII.GetString(byteBuffer, 0, dataStream.Read(byteBuffer, 0, byteBuffer.Length));
    }

И затем

ViewBag.Message= string ExtractAlternateView();

 @Html.Raw(ViewBag.Message);