我希望.html文件与我的ASP.NET MVC项目中的其他.cshtml视图一起用作视图。这样做的主要原因是html文件在我的操作中遵循与其他视图所遵循的相同的自定义安全规则。
我不想使用.cshtml或.aspx扩展名,因为那时框架会尝试编译这些相当大的文件,这是浪费,因为文件没有任何可编译的东西。
我已更新视图引擎以查找.html扩展名。这工作正常,但我得到的错误是我没有注册的构建提供程序。我已经尝试在web.config中注册.html文件的构建提供程序,但这不会对错误产生任何影响。
是否有构建提供程序只是直接传递.html文件中的文本而不尝试编译它?
所以我正在寻找的是.html文件存放在views目录中,因此它们只在通过动作请求时呈现,并且.html视图不应该通过任何编译运行。
谢谢,
克里斯
答案 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 建议。