ASP.NET MVC5使用Area区域
轉(zhuǎn)載:http://www.lanhusoft.com/Article/217.html
在大型的ASP.NET?mvc5項目中一般都有許多個功能模塊,這些功能模塊可以用Area(中文翻譯為區(qū)域)把它們分離開來,比如:Admin,Customer,Bill。ASP.NET MVC項目中把各個功能分為不同Area的之后每一個Area都有獨立的Controller,View文件結(jié)構(gòu)。這樣可以把這些功能分給不同的開發(fā)者同時開發(fā)而彼此之間不會沖突,這樣的文件結(jié)構(gòu)各司其職,直觀明了,易于維護(hù)和管理。下面我們看看怎么在ASP.NET MVC5中創(chuàng)建一個Area和Area直接之間鏈接的處理。
一、ASP.NET MVC5中創(chuàng)建Area區(qū)域
選中我們的ASP.NET MVC項目,右鍵菜單,添加=》區(qū)域,這里我們?nèi)∶麨锳dmin,在項目根目錄將會生成一個Admin文件夾,如下圖:
我們來看這個Area是怎么在項目的起作用的。
我們來看Global.asax.cs的代碼:
第一行的代碼:AreaRegistration.RegisterAllAreas();就是注冊 ASP.NET MVC 應(yīng)用程序中的所有區(qū)域。每一個區(qū)域它有自己的都有獨立的Controller,View文件結(jié)構(gòu)和路由配置,我們完全可以把ASP.NET MVC的區(qū)域看成一個ASP.NET MVC項目。
注意:?RouteConfig.RegisterRoutes(RouteTable.Routes)在AreaRegistration.RegisterAllAreas();的后面。這一點很關(guān)鍵,你最好是不要改變這個順序。之前我們談到過ASP.NET MVC路由系統(tǒng)是按注冊路由的先后順序來匹配的,這里RegisterAllAreas在前面表示MVC路由系統(tǒng)會先去匹配Area中的路由配置規(guī)則,如果你改變了順序可能會找到錯誤的Controller,發(fā)生意外的錯誤。
在ASP.NET MVC5的每個區(qū)域都有一個類:區(qū)域名+AreaRegistration,比如我們剛才建的一個Admin區(qū)域AdminAreaRegistration類:
二、在Area區(qū)域的視圖之間Action的鏈接跳轉(zhuǎn)的處理
當(dāng)在ASP.NET MVC項目中使用了AreaArea區(qū)域后,會涉及到不同Area的Action鏈接之間相互跳轉(zhuǎn),我使用Html.ActionLink有些地方需要注意。
1、同一個Area之間跳轉(zhuǎn)
在Area區(qū)域的視圖中生成指向同一個Area的Action鏈接時,你不需要做任何處理,當(dāng)你調(diào)用Html.ActionLink時MVC框架自動去找當(dāng)前Area的相應(yīng)路由來生成Action的鏈接。如下:
2、不同Area之間跳轉(zhuǎn)
3、跳轉(zhuǎn)到不帶Area的Action
我們知道使用Html.ActionLink沒有指定area,默認(rèn)就是當(dāng)前的area。有時我們需要鏈接到頂層的Controller的Action,就是不要帶area,也很簡單,只需要把area傳空字符串就可以了。如下:
轉(zhuǎn)載于:https://www.cnblogs.com/hanjun0612/p/9779842.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET MVC5使用Area区域的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: scala 基础十一 scala 中
- 下一篇: php-函数,数组