Orchard路由
2015-10-02 19:47
288 查看
Orchard路由
Orchard模块开发中,每个模块都相当于MVC中的Area,默认的路由便是{模块名称}/{Controller}/{Action},很多时候这个Url不符合我们需求,这时候就需要自定路由了。Orchard提供了自定路由的方法,便是实现IRouteProvider。例子如下:public class Routes : IRouteProvider { public void GetRoutes(ICollection<RouteDescriptor> routes) { foreach (var routeDescriptor in GetRoutes()) routes.Add(routeDescriptor); } public IEnumerable<RouteDescriptor> GetRoutes() { return new[] { new RouteDescriptor { Priority = 99,//优先级,越高越优先匹配 Route = new Route( "Admin/Article", // 自定义路由的Url模板,格式同MVC路由格式 new RouteValueDictionary { {"area", "JiaZheng"}, // Area名称就是模块名 {"controller", "Article"}, {"action", "Index"} }, new RouteValueDictionary(), new RouteValueDictionary { {"area", "JiaZheng"} // Area名称就是模块名 }, new MvcRouteHandler()) } }; } }
虽然实现了自定义路由,但是很不方便。经过测试,MVC自带的RouteAttribute是没有效果的,但是可以用反射来实现相同的效果。Url.Action也不一定能匹配到最终的Url,如果要获取最终显示的Url则用Url.AbsoluteAction这个Orchard的拓展。
相关文章推荐
- 求环的入口结点
- Aizu 2450 Do use segment tree (树链剖分)
- [codevs2170]悠闲的漫步
- 写在NOIP2015前
- Google C++ Style Guide的哲学
- pat1012The Best Rank (25)
- Mysql 5.6.22编译安装
- Google C++ Style Guide的哲学
- LightOJ 1138 Trailing Zeroes (III)
- hdu 4915 Parenthese sequence(模拟)2014多培训学校5现场
- 11i - 12 Gather Schema Statistics fails with Ora-20001 errors after 11G database Upgrade (文档 ID 781813.1)
- Star Schema完全参考手册读书笔记一
- zen coding和emmet的关系,zen coding 改名为了emmet
- JDK,JRE,JVM区别与联系
- 软工文档总结
- Picasso分析02
- 03crawler01 爬取直播电视剧列表
- 你所厌恶的正是别人渴望的
- 浅谈javascript的五种基本数据类型
- SimpleCalculator