愛上(shang)MVC3~開發Areas模塊時需要(yao)注意一下路由(you)問題
在(zai)MVC中,當你(ni)開發一個比較(jiao)大型的項目,可能(neng)它一期開發不完,屬于(yu)迭代開發的,這時(shi)(shi)陸陸續(xu)續(xu)的需要(yao)所(suo)帶來(lai)的可能(neng)是一個個的子模塊,而伴隨著項目的深入(ru),你(ni)的controllers,views,models會越積越多(duo),越來(lai)越亂(luan),這時(shi)(shi)就需要(yao)MVC的Areas功能(neng)了。
事(shi)實上,areas并沒有(you)什(shen)么(me)神秘的,它就是多個文件夾,多一(yi)層(ceng)路由(you)而以,開發方式完(wan)成與傳(chuan)統MVC沒有(you)區別,但是,如果(guo)你希望在本area模(mo)塊訪問主模(mo)塊,或(huo)者訪問其它areas子(zi)模(mo)塊時,可能要注意一(yi)些東西了
默認的(de),在你當(dang)前(qian)areas頁面上,所有Url.Action這類的(de)路由(you)方式,它使用(yong)的(de)路由(you)都是從(cong)當(dang)前(qian)areas的(de)路由(you)表開始的(de),所以,你的(de)主(zhu)模(mo)塊(kuai)(kuai)會很正常(chang)的(de)加(jia)上當(dang)前(qian)areas的(de)名稱,即//www.test.com/areasname/home/index,而這不是我們(men)(men)希望看(kan)到的(de).還(huan)有在當(dang)前(qian)areas中訪問其(qi)它areas模(mo)塊(kuai)(kuai),這時,需要我們(men)(men)在Url.Action這類方法(fa)的(de)參(can)數上做(zuo)文章了
一 得到結果為(wei)://www.test.com/home/index,代碼(ma)為(wei):
<%=Html.ActionLink("zzl模塊主頁(ye)","index","home",new{area=""} ,null) %>
二得(de)到結(jie)果為(wei)://www.test.com/User/home/index,代碼為(wei):
<%=Html.ActionLink("zzl模塊主頁(ye)","index","home",new{area="User"} ,null) %>