博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mvc 做伪静态另外一个方法
阅读量:6707 次
发布时间:2019-06-25

本文共 1093 字,大约阅读时间需要 3 分钟。

上一篇文章介绍如何做伪静态如下:

routes.MapRoute(//两个参数不带动作            "TwoparameterNoAction",            "{controller}/{CurrentID}/{ClassID}.html",            new { controller = @"[a-zA-Z]", action = "Index", CurrentID = @"[\d]{0,3}", ClassID =UrlParameter.Optional }            );

 

这样就能匹配:  但无法匹配 虽然ClassID是可选的 但还是无发匹配

这个时候很多同学都是重写多个路由来完成,其实不必如此,我们可以利用路由的通配符{*catchall} * 表示多出所有的段落都可以用catchall 来获取。

既然我们是做伪静态使URL个更加友好。我们完全可以这样做:

routes.MapRoute(//两个参数不带动作 多余的参数从catchall 获取            "TwoparameterNoAction",            "{controller}/{CurrentID}/{*catchall}",            new { controller = @"[a-zA-Z]", action = "Index", CurrentID = @"[\d]{0,3}"}            );

  那CurrentID就等于int.Parse(controlerContext.RouteData.Values["CurrentID"].ToString().Replace(".html",""))

  那CurrentID就等于1而classid 就等于catchall=2.html 我同样int.Parse(controlerContext.RouteData.Values["catchall"].ToString().Replace(".html",""))

呵呵 这样,到此大家就知道了这个.HTML 也被当参数来用了,哈哈 同样实现了“伪静态”,对于我现在所开发的中小型网站绰绰有余。

那有的同学就会每一个页面都要获取参数怎么办?很简单嘛,模型绑定下,在需要控制器的动作 传递模型就可以。这点 我就不细说了。

那再多的参数我们都不怕了 哈哈,1/2/3/4/5/6/7/8/9.html 都可以实现哦,但前提就是必须约定开发。

希望大牛路过的时候 提供更好的方法 ,希望能抛砖引玉!

转载地址:http://ozblo.baihongyu.com/

你可能感兴趣的文章
微信企业号验证
查看>>
.NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有
查看>>
关于Eclipse生成和导入Patch文件.
查看>>
人件札记:保持高效的办公室环境
查看>>
高铁与机场成交通信息化建设的双驾马车
查看>>
chmod命令
查看>>
货币的起源和职能是什么?绘制货币资金管理思维导图简单的方法介绍
查看>>
springboot+kafka+elk+docker+docker-compose+centos搭建日志收集系统
查看>>
时讯无线如何满足商业区的无线覆盖?
查看>>
2014最新open***搭建实例
查看>>
WinAPI: midiOutCachePatches - 预装音色
查看>>
finally执行顺序
查看>>
TWebBrowser 与 MSHTML(2): 获取 window 对象的时机
查看>>
【博客话题】IT人,你肿么了? ——除了IT,你还能选择什么?
查看>>
docker初步入门
查看>>
Outlook提示:无法安装或装载加载项vpmsece.dll
查看>>
使用Apache开源POI和jXLS两种API生成报表
查看>>
oracle控制台OEM无法启动
查看>>
haproxy负载均衡
查看>>
clink 让cmd像ubuntu gnome-terminal一样
查看>>