Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net中显示html电子邮件_C#_Asp.net Mvc_Razor_Html Email - Fatal编程技术网

C# 如何在asp.net中显示html电子邮件

C# 如何在asp.net中显示html电子邮件,c#,asp.net-mvc,razor,html-email,C#,Asp.net Mvc,Razor,Html Email,我正在尝试从System.Net.Mail.Alternate视图中以razor视图显示html电子邮件。我在互联网上似乎找不到任何关于如何做到这一点的信息。每件事都与创建电子邮件有关,而不是显示电子邮件 有人能帮忙吗 我一直在尝试这样的事情: @{var stream = Model.AlternateViews[0].ContentStream; using (StreamReader reader = new StreamReader(stream)) { Html.

我正在尝试从System.Net.Mail.Alternate视图中以razor视图显示html电子邮件。我在互联网上似乎找不到任何关于如何做到这一点的信息。每件事都与创建电子邮件有关,而不是显示电子邮件

有人能帮忙吗

我一直在尝试这样的事情:

 @{var stream = Model.AlternateViews[0].ContentStream;
  using (StreamReader reader = new StreamReader(stream))
  {
      Html.Raw(reader.ReadToEnd());
      Html.Display(reader.ReadToEnd());
  }
我不知道如何提取html内容或如何显示它虽然

谢谢

基于此答案,您只需使用函数以字符串形式获取流即可

   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);

尝试使用
System.Net.WebUtility.HtmlDecode(“…”)