如何从流/字符串加载mht到WebBrowser控件?

如果我使用Navigate方法,WebBrowser控件正确加载任何mht文件,但是当我使用DocumentTextDocumentStream属性时, mht文件的显示就像我在记事本中打开文件一样。

如果我将流写入临时文件然后导航到它,它可以正常工作,但我不想这样做。

这个问题似乎很常见,但我没有找到适合它的解决方案。 有人建议我应该通过实现IPersistMoniker com接口来欺骗IE,等等。 我已经尝试了一点,但不幸的是我得到了相同的结果。 可能是我做错了什么。 我仍然认为他们应该是一个更直接的解决方案(除了首先保存在临时文件中),任何想法?

我记得几年前我遇到了同样的问题,虽然我搜索了一个解决方案然后我没有找到任何解决方案。 最后,我采用了临时文件方法。 祝你好运,如果有答案,我也想知道。

在vb.net中我们使用过

 Response.ContentType = "message/rfc822" Dim ByteDocBlob() As Byte = cwWebUtil.ConvertLocalFileToByteArray(FilePath, True) Dim HTMLText As String = System.Text.Encoding.UTF8.GetString(ByteDocBlob) Response.Write(HTMLText) Response.End() 

问题是IE似乎只接受它。

 var uri = new Uri(String.Format("file:///{0}", Path.GetFullPath(source))); wbMain.Navigate(uri); 

其中source – .mht文件的路径