我希望能够请求位于~/Views
文件夹中的静态.html
文件。根据文档,在评估应用程序的路由之前,路由系统会检查URL是否与磁盘文件匹配。
但是当我请求该文件时,出现了一个404
错误。
我的文件位于~/Views文件夹中。网址是:http://[localhost]/Views/HtmlPage1.html
我错过了什么?
发布于 2014-09-06 13:24:37
要允许视图文件夹中的js和html等文件,请编辑视图文件夹中的web.config:
<system.webServer>
<handlers>
<add name="JavaScriptHandler" path="*.js" verb="*"
preCondition="integratedMode" type="System.Web.StaticFileHandler" />
<add name="HtmlScriptHandler" path="*.html" verb="*"
preCondition="integratedMode" type="System.Web.StaticFileHandler" />
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
发布于 2016-10-13 15:58:17
另一种选择是在任何所需的控制器中插入操作方法,以提供html文件。
public ActionResult MyHtml()
{
var result = new FilePathResult("~/Views/HtmlPage1.html", "text/html");
return result;
}
以http://yoursite/controller/MyHtml身份访问html。您可以扩展此操作方法以接受html文件名作为method/querystrign参数,并在运行时呈现该文件,例如如下所示。
public ActionResult MyHtml(string htmlPageName)
{
var result = new FilePathResult($"~/Views/{htmlPageName}.html", "text/html");
return result;
}
发布于 2019-03-27 13:28:40
如果你计划使用内部视图文件夹,上面的答案应该是最好的,但这个答案可能对迁移到asp.net mvc核心的用户有用。将文件放在wwwroot文件夹中而不是views文件夹中,可以使您的html页面像localhost/myfile.html那样轻松访问
https://stackoverflow.com/questions/17949460
复制相似问题