在MVC视图中包含带有图像的大型静态HTML文件

本文关键字:大型 静态 HTML 文件 图像 MVC 视图 包含带 | 更新日期: 2023-09-27 18:24:43

我正在将托管HTML内容的桌面应用程序转换为在线应用程序。我有各种各样的预构建静态html,需要根据用户操作将其包含在MVC页面中。每个静态html页面都包括至少一个img标记,该标记引用的文件在Web窗体页面中位于同一目录中。这里有一个非常简单的例子:

静态html:

<html>
<!-- Large chunk of html -->
<img src="logo.gif" >
<!-- More html -->
</html>

采样器控制器:

Dim html as String = GetFileContentAsString("~/Content/Sample/Static.html")
ViewBag.StaticHTML = PrepareHTMLContent(html)

视图:

@Html.Raw(ViewBag.StaticHTML)

上面的结果是在HTML中间具有断开的图像链接的页面(例如http://localhost:12345/Sample)。我已经在尽可能地预处理html,以去除无用的标签并插入Javascript和CSS链接,但预处理图像路径是不可靠的,因为它们可能在静态html中的任何位置,并且很可能不一致或奇怪。

那么,我如何将图像文件放置(或创建)在正确的位置,以便静态html拾取它呢?还有其他选择吗(请记住,我还需要链接CSS和JavaScript文件,并且静态html有一堆其他相关文件,需要保存在一个位置)?

或者有没有一种方法可以定义或覆盖动态MVC页面的构建位置?

在MVC视图中包含带有图像的大型静态HTML文件

最简单的方法是让/Sample返回一个HTML页面,该页面只需将/~Content/Sample/Static.HTML加载到iframe中,这样浏览器就可以将Static.HTML中的相对路径解析为/~Content/Seample/