将.html文件呈现为ASP.NET MVC中的视图

时间:2011-07-27 18:17:28

标签: asp.net-mvc

我希望.html文件与我的ASP.NET MVC项目中的其他.cshtml视图一起用作视图。这样做的主要原因是html文件在我的操作中遵循与其他视图所遵循的相同的自定义安全规则。

我不想使用.cshtml或.aspx扩展名,因为那时框架会尝试编译这些相当大的文件,这是浪费,因为文件没有任何可编译的东西。

我已更新视图引擎以查找.html扩展名。这工作正常,但我得到的错误是我没有注册的构建提供程序。我已经尝试在web.config中注册.html文件的构建提供程序,但这不会对错误产生任何影响。

是否有构建提供程序只是直接传递.html文件中的文本而不尝试编译它?

所以我正在寻找的是.html文件存放在views目录中,因此它们只在通过动作请求时呈现,并且.html视图不应该通过任何编译运行。

谢谢,

克里斯

2 个答案:

答案 0 :(得分:15)

我找到了解决方案。在我的操作中,我返回FilePathResult,它只是加载文件并传递它而不进行任何编译。

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

答案 1 :(得分:3)

如果你想为你的一个动作方法做这件事@Chris / @Marius真棒。 他们给出了:

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

如果您想在Web配置中执行以从Views文件夹返回纯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 建议。