mvc中多参数URL会很长,首次加载不传参数让url很短,路由规则实现方法

如要实现列表中地址全路径“bubuko-11-2.html”,在首次进入时,使用短路径“bubuko.html”,只有再次href后才显示全路径“bubuko-11-2.html”,下面使用路由规则来实现。



//"/bubuko-11-2.html",eID=11,pageIndex=2
routes.MapRoute("bubuko", "{action}-{eID}-{pageIndex}.html",
               new { controller = "bubuko", action = "Index" });

//"/bubuko-11.html",eID=11,pageIndex默认是1
routes.MapRoute("bubuko_No_pageIndex", "{action}-{eID}.html",
               new { controller = "bubuko", action = "Index", eID = 1, pageIndex = 1 });

//"/bubuko.html",eID默认是1,pageIndex默认是1
routes.MapRoute("bubuko_No_eID_pageIndex", "{action}.html",
               new { controller = "bubuko", action = "Index", eID = 1, pageIndex = 1 });


完整方案:

routes.MapRoute("bubuko_wuAction", "{controller}.html", new { controller = "home", action = "index", id = "" });//没有Action的路由规则
routes.MapRoute("bubuko_wuID", "{controller}/{action}.html", new { controller = "home", action = "index", id = "" });//没有ID的路由规则
routes.MapRoute("Default", "{controller}/{action}/{id}.html", new { controller = "home", action = "index", id = "" });//默认匹配
routes.MapRoute("Root", "", new { controller = "home", action = "index", id = "" });//根目录路由规则


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。