.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配置
两种方式效果是一样的