Asp.Net MVC3 簡單入門第一季(五) 通過Asp.Net MVC的地區功能實現將多個MVC項目部署到一個網站

來源:互聯網
上載者:User
引子

本文將主要示範怎麼將多個Asp.Net MVC項目部署到一個IIS網站中的例子,主要使用的是Asp.Net MVC提供的地區的功能。

Asp.Net MVC提供了地區的功能,可以很方便的為大型的網站劃分地區。可以讓我們的項目不至於太複雜而導致管理混亂,有了地區後,每個模組的頁面都放入相應的地區內進行管理很方便。而隨著項目的複雜,每個開發人員開發的模組呢也可能是一個完整的解決方案,而他要開發的UI項目呢只是主要站台項目的一個地區,而如果把所有的UI項目放到一個UI項目,在團隊開發時就不很方便了,而我們想達到的效果是:每個模組都對應一個UI項目【這裡指Asp.Net MVC項目】,最後部署的時候將子項目都配置成地區,而總的項目就是一個網站。

一、項目建立

首先建立一個主Asp.Net MVC項目,然後建立一個子Asp。Net MVC項目。項目的結構如下:

註:

1、AreasDemo【子項目,作為主專案的一個Area】、MvcAppMain【主Web項目】都是普通的Asp.Net MVC3項目

2、MVCControllers是一個類庫項目

3、補充:Asp.Net MVC的控制器:Controller是可以放到網站的任何DLL中的,它在搜尋控制器時,會搜尋網站下的所有DLL,當類符合條件:不是靜態類,類名以Controller結尾,實現了Controller基類【其實最主要是IController介面】的條件時它就會被識別為控制器。所以我們可以把控制器放到任何的其他項目中,只有將此控制器所在的DLL拷貝到、主要站台的Bin目錄或者對應的DLL目錄就可以了。當然也可以放在預設的Web項目中的Controller檔案夾下。

二、添加測試的Controller和Action

在子領域Web項目AreasDemo項目中添加一個Action,然後添加一個對應的視圖

在主Web項目MvcAppMain中添加一個HomeController和相應的Index.cshtml視圖檔案。

在MVCAppMain項目中添加一個Admin地區,做測試使用。

項目最終為:

我們看到,在主要站台裡添加了一個Admin地區後,預設建立了一個Areas檔案夾,而且內部就是存放地區項目的頁面。

三、在子項目中添加Areas Registration類

開啟AreasDemo項目,添加一個AreasDemoRegistration類檔案,其代碼如下:

public class AreasDemoRegistration : AreaRegistration//在主要站台註冊地區
{
public override string AreaName
{
get { return "AreasDemo"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"AreasDemo_default",//路由名字,必須唯一
"AreasDemo/{controller}/{action}/{id}",//路由規則
new { action = "Index", id = UrlParameter.Optional }//預設值
);
}
}

其實就是一個普通的類,它實現了AreaRegistration基類。然後我們註冊地區路由就會在Global.asax的Application_Start事件方法中去執行註冊到主要站台的路由表中。具體

可以參考Global.asax中紅色代碼部分:

protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();//註冊所有地區
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}

至此我們基本的測試的基礎工作都做好了,下面就是到了部署階段了。

四、部署我們的項目

首先,我們需要將子項目的引用到主專案中。然後我們發布主專案到一個磁碟檔案夾。然後,將子項目AreasDemo的Views檔案夾拷貝到主專案發布後的檔案夾對應的Areas\AreasDemo檔案夾下。其中AreasDemo是areaname,此檔案夾需要我們自己手動建立。然後,觀察發布後的bin目錄下有沒有AreasDemo.dll動態連結程式庫【Web子項目】。

然後,我們將此檔案夾發布為IIS裡的一個網站。最終示範效果為:

註:這是預設主Web的inde頁面

註:這是主要站台裡添加的Admin地區

註:這是子項目action請求返回的頁面

總結

我們是通過Asp.Net MVC的地區的功能實現了將多個Asp.Net MVC的項目部署的了一個IIS的網站中,這樣就可以讓我們多個人一塊開發的不用局限在一個Web項目中了。可能文章說的不夠詳盡,請參下載我本文中提到的源碼和部署的網站資料夾,做為參考。

趕緊體驗一下吧....

下載:關於此文中的源碼,以及部署Web網站的檔案夾

轉載請註明出處,謝謝。

Asp.Net MVC3 簡單入門第一季 【索引貼】初識Asp.Net MVC2.0初識Asp.Net MVC2.0【續】

Asp.Net MVC2.0 Url 路由入門---執行個體篇

Asp.Net MVC2.0 Url 路由入門

Asp.Net MVC3 簡單入門第一季(一)環境準備

Asp.Net MVC3 簡單入門第一季(二)詳解Asp.Net MVC3項目

Asp.Net MVC3 簡單入門第一季(三)詳解Controller之Filter

Asp.Net MVC3 簡單入門第一季(四)詳解Request Processing Pipeline

初識Asp.Net MVC2.0初識Asp.Net MVC2.0【續】

Asp.Net MVC2.0 Url 路由入門---執行個體篇

Asp.Net MVC2.0 Url 路由入門

Asp.Net MVC3 簡單入門第一季(一)環境準備

Asp.Net MVC3 簡單入門第一季(二)詳解Asp.Net MVC3項目

Asp.Net MVC3 簡單入門第一季(三)詳解Controller之Filter

Asp.Net MVC3 簡單入門第一季(四)詳解Request Processing Pipeline

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.