Webbrowser 控件显示另存为对话框而不是显示本地 .mhtml 页面

webbrowser control shows a save as dialog instead of displaying a local .mhtml page

这个让我摸不着头脑。

我们有一个 "Previewer" 托管 WebBrowser 控件。

当此 "Previewer" 用于 "preview" Word 文档或 Excel 电子表格时,我使用一些代码将文档转换为 .mhtml 文件。然后我告诉 WebBrowser 导航到那个。

这在很多机器上都能正常工作,但不是全部。在某些机器上,不是 "navigating" 到 mhtml 并在 WebBrowser 控件中显示它,WebBrowser 控件自行呈现一个 "Save As" 对话框,要求用户将 .mhtml 文件保存到他们的PC.

这是怎么回事,我该如何阻止它?

谢谢

我尝试导航到的文件类型示例:

"file://127.0.0.1/C$/Users/blahblahblahhere/AppData/Local/furthersubfoldershere/637183327673490444_Document1_486951.mhtml"

我所做的只是

oWB.Navigate(....)

好的....这也可能是相关的。当用户使用我们在 Outlook 365 中编写的加载项时会发生这种情况……因此,WebBrowser 控件以用户在 Outlook 中执行操作时弹出的一种形式托管在我们的加载项中。

好吧,我仍然不知道为什么它对 .mhtml 文件执行此操作,但我发现将其转换为 .html 确实有效。我不愿意这样做,因为转换为 HTML 的 Word 文档或 Excel 电子表格可能会生成一个包含大量关联文件的 .HTML 文件,例如对于图像。但是,尽管它确实这样做了,但事实证明它在 WebBrowser 控件中仍然工作得非常愉快。并且没有弹出 "save" 对话框。

如果你必须使用MHTML我没有适合你的解决方案,但是如果HTML对你来说是"good enough",那么,这就是我自己修复它的方式。