在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页面的构建位置?
最简单的方法是让/Sample返回一个HTML页面,该页面只需将/~Content/Sample/Static.HTML加载到iframe中,这样浏览器就可以将Static.HTML中的相对路径解析为/~Content/Seample/