爱上MVC3~开发Areas模块时需要注意一下路由问题
在MVC中,当你开发一个比较大型的项目,可能它一期开发不完,属于迭代开发的,这时陆陆续续的需要所带来的可能是一个个的子模块,而伴随着项目的深入,你的controllers,views,models会越积越多,越来越乱,这时就需要MVC的Areas功能了。
事实上,areas并没有什么神秘的,它就是多个文件夹,多一层路由而以,开发方式完成与传统MVC没有区别,但是,如果你希望在本area模块访问主模块,或者访问其它areas子模块时,可能要注意一些东西了
默认的,在你当前areas页面上,所有Url.Action这类的路由方式,它使用的路由都是从当前areas的路由表开始的,所以,你的主模块会很正常的加上当前areas的名称,即http://www.test.com/areasname/home/index,而这不是我们希望看到的.还有在当前areas中访问其它areas模块,这时,需要我们在Url.Action这类方法的参数上做文章了
一 得到结果为:http://www.test.com/home/index,代码为:
<%=Html.ActionLink("zzl模块主页","index","home",new{area=""} ,null) %>
二得到结果为:http://www.test.com/User/home/index,代码为:
<%=Html.ActionLink("zzl模块主页","index","home",new{area="User"} ,null) %>