2011-07-27 47 views
9

我想有.html文件作爲意見一起在我的ASP.NET MVC項目的其他.cshtml意見。這樣做的主要原因是爲了使html文件在我的操作中受到相同的自定義安全規則的約束,其他視圖遵守。渲染HTML文件作爲視圖ASP.NET MVC

我不想因爲這樣的框架嘗試編譯這些相當大的文件,這是浪費使用.cshtml或擴展的.aspx由於文件沒有什麼編譯。

我已經更新視圖引擎查找HTML擴展。這工作正常,但然後我得到的錯誤是我沒有註冊的生成提供程序。我已經嘗試在web.config中註冊一個.html文件的生成提供程序,但這在錯誤中沒有任何區別。

是否有將只直通通過從.html文件的文本,而不試圖編譯生成提供?

所以,我正在尋找的是爲.html文件住在views目錄,所以當通過一個動作要求他們只渲染和html的意見不應通過任何編譯運行。

感謝,

克里斯

+1

是不是視圖編譯一次然後緩存到某個地方?恕我直言,爲簡單的HTML速度而言,是一個真正的微觀優化。 – jfar

回答

14

我找到了解決辦法。在我的操作中,我返回FilePathResult,它只是加載文件並在沒有任何編譯的情況下傳遞它。

return new FilePathResult("path_and_file.html", "text/html"); 
+0

或者,如果你想更加簡潔,你是一個'Controller'裏面:'回報文件(「path_and_file.html」,「text/html的」);' –

+1

我怎樣才能使其佈局內? – Deka

3

如果你想爲你的一個動作方法做@ @ Chris/@Marius真棒。 ,因爲他們給出:

return new FilePathResult("path_and_file.html", "text/html"); 
//or better use 
return File("path_and_file.html", "text/html"); 

我想多一個解決方案添加到這個問題,如果你想這樣做,在web配置從瀏覽文件夾返回純HTML的觀點:

<!-- web.config under the Views folder --> 

<system.webserver> 
<handlers> 

<add name="HtmlScriptHandler" path="*.html" verb="*" precondition="integratedMode" 
    type="System.Web.StaticFileHandler" /> 
</handlers> 
</system.webserver> 

這裏一個post暗示它。

+0

感謝您爲我工作!^-^ –

+0

謝謝,更好的'return File(「path_and_file.html」,「text/html」);' line與.net core一起工作 – MIP1983