第一步修改RouteConfig.cs文件
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
"ActionHtml", // action伪静态
"{controller}/{action}.jsp/{id}",// 带有参数的 URL
new { controller = "home", action = "index", id = UrlParameter.Optional }// 参数默认值
); routes.MapRoute(
"ControllerHtml", // controller伪静态
"{controller}.jsp/{action}/{id}",// 带有参数的 URL
new { controller = "home", action = "index", id = UrlParameter.Optional }// 参数默认值
);
routes.MapRoute(
"Root",
"",
new { controller = "home", action = "index", id = UrlParameter.Optional });//根目录匹配 routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "home", action = "index", id = UrlParameter.Optional }//默认配置
);
}
第二步修改web.config
IIS6
<system.web>
<httpHandlers>
<add name="html" verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
</system.web>
IIS7以上 jexus mvc伪静态也可以如此
<system.webServer>
<handlers>
<add name="html" verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</handlers>
</system.webServer>
上面2步,我在iis7和jexus 就已经搞定了.jexus这边是linux需要注意大小写
配置IIS6据说还要
IIS配置:网站->属性 ->虚拟目录->配置(G)...->映射->通配符应用程序映射->添加
可执行文件:c:/windows/microsoft.net/framework/v2.0.50727 /aspnet_isapi.dll
扩展名为:.html
确认文件是否存在:不选.
配置IIS7.5(不一定用)
你的网站-->IIS中处理程序映射-->
添加脚本映射(路径:*.html 可执行文件%windir%/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll 名称:任意,比如Hml )
添加通配符脚本映射(路径:* 可执行文件:C:/Windows/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll 名称:任意,比如All)
托管处理程序映射(路径:* 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)-------->
IIS中 模块-->添加---->(名称:任意 如All 类型:URLRewriter.ModuleRewriter 把 仅针对向asp.net 应用程序或托管处理程序发出请求调用 勾上 ok )
其他资料
经典模式:经典形式是为了与之前的版本兼容,运用ISAPI扩展来调用ASP.NET运转库,原先运转于IIS6.0下的Web应用程序迁移到IIS7.0中只需将应用程序配置成经典形式,代码根本不用修正就能够正常运转。太长了 只要记住一点,兼容(.net1.1/2.0/3.5) 用这个模式
集成模式:集成形式是一种统一的乞求处置管道,它将ASP.NET恳求管道与IIS中心管道组合在一同,这种形式可以提供更好的性能,可以完成配置和管理的模块化,而且增加了运用托管代码模块扩展IIS时的灵敏性。太长了,只要记住一点,.net4.0和4.5版本开发就用它,它的性能高还能重写!