.NET Area

ASP.NET MVC 建立模組化的Areas

韓世謙 2018/12/31 15:36:29
2776

ASP.NET MVC 建立模組化的Areas


簡介

大部分ASP.NET MVC的開發人員應該都有使用Area來區分不同性質網頁的經驗,例如:後台、會員中心等。 但是當隨著網站的內容及規模不斷的擴充,使用的Area也可能會越來越多,這也造成了網站的複雜度增加及維護不易。所以,本文將介紹如何在Web應用程式中建立模組化的Area,來區分不同的子應用程式。

作者

韓世謙


一、建立Web應用程式(WebSiteDemo)

首先先建立一個最基本的MVC網站,取名為WebSiteDemo

 

二、用一般的模式建立Area

接著在WebSiteDemo專案中新增一個Area,取名為Member

在新增完Member Area後,將MemberAreaRegistration.cs另存下來, Member資料夾下的檔案都可以刪除,但是保留Member資料夾。

接下來會在Member資料夾之下新增一個專案。

三、建立Member模組

在方案底下,新增一個空的 Web 專案 (Member) ,專案的路徑指向 WebSiteDemo\Area\Member
 

然後將先前另存的MemberAreaRegistration.cs複製到Member專案中,並且在Nuget中安裝Microsoft.AspNet.Mvc。目前為止的Member專案呈現的模樣如下:

四、修改MemberAreaRegistration.cs

接著更新MemberAreaRegistration.cs 的namaspace,使其與WebSiteDemo專案一致

五、測試

現在我們立刻在Member專案中新增一個DefaultControllerView,看看是否可以順利的執行。

注意:因為Member專案是從一個空的專案開始建立,因此Member/Views底下不會自動產生Web.config,所以必須從WebSiteDemo中複製過來。

 

接著我們將WebSiteDemo 執行起來,開啟http://localhost/Member,

會發現竟然是404找不到資源......。

其實還有最後一步還沒有做,我們必須在WebSiteDemo中加入Member專案的參考(不然WebSiteDemo是不會認得Member專案的喔)

 

在執行一次http://localhost/Member,可以成功看到Member Area

 

以上就是最基礎的將Area模組化的方法,如果需要建立多個Area,使用同樣的步驟依序建立即可。

在這種架構下,每個Area都是一個獨立的專案,彼此不會互相影響。

如果將專案中不同性質的網頁模組化,我們就可以很快速地依照專案的需求套用所需的模組或移除不需要的,而且也不會影響到其他的模組。

韓世謙