.net mvc 实现伪静态

伪静态其实很简单  

主要是两部分 1-mvc路由配置 2-处理程序映射(.html文件的映射)

一、路由

    

        #region ==>官网伪静态

            context.MapRoute(
            "Web_default_3",
            "Web/WebSite/{action}_{id}_{index}.html",
            new { action = "Index", controller = "WebSite", id = UrlParameter.Optional,index = UrlParameter.Optional }
             );
            context.MapRoute(
              "Web_default_4",
              "Web/WebSite/{action}_{id}.html",
              new { action = "Index", controller = "WebSite", id = UrlParameter.Optional }
               );
            context.MapRoute(
            "Web_default_2",
            "Web/WebSite/{action}.html",
            new { action = "Index", controller = "WebSite" }
             );
            #endregion

            context.MapRoute(
                "Web_default",
                "Web/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );

  


  路由映射是从上往下匹配  匹配到第一个就不会往下匹配。这边只配置WebSite目录下的页面 为伪静态

  这边配置的三个路由分别(1)列表页带分页的页面  (2)某个商品的详情页或者新闻的详情页 (3)不需要参数的页面

二、处理程序映射

有两种方式配置:

(1)Web.config直接配置

      <add name="htmlHandler1" verb="GET,HEAD" path="/Web/Website/*.html" type="System.Web.StaticFileHandler"/>
      <add name="htmlHandler2" verb="GET,HEAD" path="/Web/Website/ShoesDetail/*.html" type="System.Web.StaticFileHandler"/>

在handlers模块新增  这边路径只匹配到对应的要生成的路径  

(2)IIS配置

两种方式效果是一样的

 

posted @ 2017-08-30 14:47  陈若青  阅读(287)  评论(0编辑  收藏  举报