2013-03-18 62 views
0

我有一个ASP.NET MVC3应用程序。在我的应用程序中,我需要能够呈现外部HTML页面。这些HTML页面存储在一个简单的文件结构中,图像,CSS和JS文件存储在文件夹中。基本上打开HTML文件将渲染页面,因为它应该呈现。我想要的是能够以编程方式呈现此页面。使用依赖关系呈现外部html页面(资源)

到目前为止,我已经尝试这样的东西:

Response.WriteFile(path)

return new FilePathResult("~/Path", "text/html");

的问题是资源(图片,CSS和JS文件)没有得到加载,因为只有我加载html源代码。

我能做些什么才能正确呈现与其他包含文件的HTML文件?

P.S .:我知道这个功能可能是我应用程序中的一个安全漏洞。谢谢!

编辑:正如Darin指出的那样,我可以使用iframe将呈现的HTML页面放在我的视图中。这就是我目前使用的,但我想实现一个更安全的解决方案,这个解决方案不允许访问实际的HTML页面。

回答

1

我能做些什么才能正确呈现其他包含文件的HTML文件?

你可以使用iframe:

<iframe src="/somepage.html"></iframe> 

return new FilePathResult("~/Path", "text/html");也应该工作,它只是在此HTML页面中引用的静态资源(CSS,JavaScript,图片,...)需相对于当前的网址或绝对网址(如果它们是静态HTML,则更加困难)。

+0

是的,我目前正在使用iframe解决方案,但我想为通过控制器访问这些页面添加一些安全性。通过将它们公开访问,我无法做到这一点。资源路径与应用程序无关的事实是我的问题。这些HTML文件是通过外部工具生成的,路径只是相对于本地文件结构。感谢你的回答。将upvote。 – 2013-03-18 10:14:37

+1

在这种情况下,您可以将它们作为静态文件提供并添加一个自定义HTTP模块来实现安全性。 – 2013-03-18 10:42:55

+0

是的,这可能是一个解决方案,将尝试并回答一个答案。再次感谢! – 2013-03-18 11:42:40