首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET MVC的~/ .html文件夹下请求静态视图文件?

如何在ASP.NET MVC的~/ .html文件夹下请求静态视图文件?
EN

Stack Overflow用户
提问于 2013-07-30 22:12:19
回答 4查看 91K关注 0票数 95

我希望能够请求位于~/Views文件夹中的静态.html文件。根据文档,在评估应用程序的路由之前,路由系统会检查URL是否与磁盘文件匹配。

但是当我请求该文件时,出现了一个404错误。

我的文件位于~/Views文件夹中。网址是:http://[localhost]/Views/HtmlPage1.html

我错过了什么?

EN

回答 4

Stack Overflow用户

发布于 2014-09-06 13:24:37

要允许视图文件夹中的js和html等文件,请编辑视图文件夹中的web.config:

代码语言:javascript
复制
<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>

票数 79
EN

Stack Overflow用户

发布于 2016-10-13 15:58:17

另一种选择是在任何所需的控制器中插入操作方法,以提供html文件。

代码语言:javascript
复制
public ActionResult MyHtml()
{
    var result = new FilePathResult("~/Views/HtmlPage1.html", "text/html");
    return result;
}

http://yoursite/controller/MyHtml身份访问html。您可以扩展此操作方法以接受html文件名作为method/querystrign参数,并在运行时呈现该文件,例如如下所示。

代码语言:javascript
复制
 public ActionResult MyHtml(string htmlPageName)
 {
      var result = new FilePathResult($"~/Views/{htmlPageName}.html", "text/html");
      return result;
 }
票数 15
EN

Stack Overflow用户

发布于 2019-03-27 13:28:40

如果你计划使用内部视图文件夹,上面的答案应该是最好的,但这个答案可能对迁移到asp.net mvc核心的用户有用。将文件放在wwwroot文件夹中而不是views文件夹中,可以使您的html页面像localhost/myfile.html那样轻松访问

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17949460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档