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

时间:2014-09-26 14:56:24

标签: c# asp.net-mvc asp.net-mvc-5

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

静态HTML:

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

SampleController:

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

查看:

@Html.Raw(ViewBag.StaticHTML)

上述结果是一个页面(例如http://localhost:12345/Sample),在HTML中间有一个损坏的图像链接。我已经预处理了html,尽可能剥离无用的标签并插入Javascript和CSS链接,但是预处理图像路径是不可靠的,因为它们可能在静态html中的任何地方,并且很可能是不一致的或者是古怪的。 / p>

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

或者有没有办法定义或覆盖动态MVC页面的构建位置?

1 个答案:

答案 0 :(得分:1)

最简单的方法是让/ Sample返回一个HTML页面,只需将/〜ContentConample/Static.html加载到iframe中,以便浏览器将static.html中的相对路径解析为/ ~Content / Sample /