mvc路由配置.html结尾的伪静态

时间:2022-05-04
本文章向大家介绍mvc路由配置.html结尾的伪静态,主要内容包括更好的解决方案(方式二)、更好的解决方案(方式三)、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

    mvc 标准的写法 通常是(http://localhost:8149/Home/Index) 路由配置如下:

    有时候需求 如 http://localhost:8149/Home/Index 改为http://localhost:8149/index.html 让其看起来更加像一个静态网站

       //配置首页 伪静态 路由
            routes.MapRoute("pc_index", "index.html", new { controller = "Home", action = "Index" });

 然而  

解决方式一(不建议)修改 Web.config 文件  

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" >
</modules>
</system.webServer>

这种方式强烈不建议: 1、这些问题的形式是使所有注册的HTTP模块在每个请求上运行,而不仅仅是托管请求(例如.html)。 这意味着模块将永远运行.jpg .gif .css .aspx等 2、浪费资源 3、并具有可能导致错误的全局效应

更好的解决方案(方式二)

<system.webServer>
    <modules > 
      <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
    </modules>
  </system.webServer>

更好的解决方案(方式三)

 <system.webServer> 
    <handlers>
      <add  name="htmlHandler" verb="GET,HEAD" path="*.html" type="System.Web.StaticFileHandler"/>
    </handlers>
  </system.webServer>