5. ASP.NET MVC 中的Areas【區域】是什么


【PS返回上一篇:-->4.ASP.NET MVC 5.0 視圖之模型綁定】        

從ASP.NET MVC 2.0開始,微軟就提供了一個新特性:Areas【區域】。Areas僅僅是用來將大型程序拆分為單獨的MVC,例如:

當你向一個項目添加Area的時候,為Area定義的路由就定義在AreaRegistration文件中。基於請求的URL,路由發送請求到Area。為Area注冊路由,你添加代碼到Global.asax文件中,然后程序運行的時候,就會自動在AreaRegistration文件中,找到Area的路由規則。

AreaRegistration.RegisterAllAreas();

在MVC中使用Area的優點

  1. 允許我們更好的為不同的功能模塊,例如【管理員,記費,客戶支持等】組織程序的models,Views以及控制器。
  2. 更好地和其他人創建的Areas進行集成
  3. 有利於單元測試

怎樣在ASP.NET MVC 5.0中創建Area

我們創建一個MVC應用程序:創建好Home控制器和Index視圖:

 

 好了,現在我們需要在這個程序中,創建Area,怎么創建?右鍵選擇項目,添加-->區域

 

 輸入你想要的名字,這里我輸入的Mens

 

可以看到,生成了如下文件:  

在Mens Area的控制器文件夾下,添加一個Home控制器。

然后給Mens Index方法添加視圖:

 

 接着按照剛才的步驟,再添加一個Womens Area[包含控制器,視圖];

 

 創建好之后,直接運行程序,我們發現出錯了:

 

 看到這個異常信息,我們知道了,我們有多個Home控制器,我們應該在RouteConfig類中使用namespaces特性。如果我們先不改,而是僅僅想要訪問Womens Area下的Home怎么辦?

很簡單,在瀏覽器中,輸入:http://localhost:49269/Womens/Home

可以看到,我們可以直接訪問Womens的Home控制器下的Index

 現在我們修復上面的Bug,打開項目的RouteConfig文件,修改:

修改之后,我們在運行程序,結果如下:

 

但是我們想要在主頁面,跳到區域視圖里面怎么辦:

在主Home控制器的Index修改一下:

 

 點擊一下“Go To Mens Home”

 

這就是從一個area跳到另一個Area的例子。

如果,我們想要在URL中設置默認的Area參數,我們可以在RouteConfig文件中使用DataTokens集合,添加“area”鍵,值就是Area的值。

 

 修改之后,我們運行程序,默認就到了Womens頁面:

 

好了,以上就是Area的基礎介紹。謝謝大家,有什么疑問,隨時留言評論。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM