2013-03-18 43 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