天天看點

《精通 ASP.NET MVC 4》----2.2 建立ASP.NET MVC新項目

本節書摘來自異步社群《精通 asp.net mvc 4》一書中的第2章,第2.2節,作者: 【美】adam freeman ,譯者: 李萍 , 徐燕萍 , 林逸 , 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

精通 asp.net mvc 4

從在visual studio中建立一個新的mvc項目開始。在“file(檔案)”菜單中選擇“new(建立)”→“project(項目)”,打開“new project(新項目)”對話框。如果在“visual c#”選項組中選擇“web”模闆,會看到一個可用的項目類型“asp.net mvc 4 web應用程式”,選擇該項目類型,如圖2-1所示。

注意:visual studio 2012包括了對mvc 3以及mvc 4的支援,是以讀者可以在新模闆的旁邊看到舊版本的可用模闆。在建立新項目時,要小心選擇正确的模闆。

将這個新項目的名稱設定為partyinvites,點選“ok(确定)”按鈕,将看到另一個對話框,如圖2-2所示。它要求使用者在三個不同類型的mvc項目模闆之間進行選擇。

《精通 ASP.NET MVC 4》----2.2 建立ASP.NET MVC新項目

不同的mvc項目模闆所建立的項目帶有不同程式的支援特性,例如認證、導航及視覺樣式等。對于本章而言,隻是打算保持事情簡單,故選擇“empty(空模闆)”選項,建立一個帶有基本檔案夾結構的項目,但沒有建立mvc應用程式所需要的任何檔案。随着本書的進展和進一步解釋,後面将逐漸添加必要的檔案。

點選“ok(确定)”按鈕,建立這個新項目。

注:在圖2-2中有一個下拉菜單,可以指定該項目的視圖引擎。微軟随mvc 3引入了一個新型的、叫作razor的改進視圖引擎。本書将使用這個razor,建議讀者也這麼做,但如果想使用舊版的asp.net視圖引擎(稱為aspx引擎),也可以在這裡選擇。本書将在第5章和第18章解釋razor,以及視圖引擎所做的事情。

一旦visual studio建立了這個項目,便可以看到在“solution explorer(解決方案資料總管)”視窗中顯示了一些檔案和檔案夾,這是mvc 4項目預設的結構。現在,通過選擇“debug(調試)”菜單中的“startdebugging(開始調試)”(或簡單地按快捷鍵f5——譯者注),試着運作一下這個應用程式(如果提示“enable debugging(啟用調試)”,點選“ok(确定)”按鈕,将會看到圖2-3所示的結果。因為本例是從empty項目模闆開始的,此應用程式尚未包含任何可以運作的東西,是以會看到一個“404 —未找到”的錯誤螢幕。

做完上述操作之後,要確定停止調試,這可以關閉顯示錯誤消息的浏覽器視窗或傳回visual studio,在“debug(調試)”菜單上選擇“stop debugging(停止調試)”(或簡單地按快捷鍵shift + f5——譯者注)。

visual studio會打開浏覽器來顯示項目,通過圖2-4所示的工具欄菜單,讀者可以修改所使用的浏覽器。可以看到,已經安裝了微軟的internet explorer和google的chrome。

《精通 ASP.NET MVC 4》----2.2 建立ASP.NET MVC新項目

本書将使用internet explorer 10。所有現代web浏覽器都不錯,但本書堅持使用ie,因為它是被廣泛安裝的。

在mvc體系架構中,傳入的請求是由控制器(controller)處理的。在asp.net mvc中,控制器隻是簡單的c#類(通常繼承于system.web.mvc.controller,這是架構内建的控制器基類)。在控制器中的每一個public方法都稱為一個動作方法(action method),即可以用某個url通過web來調用它,以執行一個動作。mvc約定,把控制器都放在一個名為controllers的檔案夾中,這是visual studio在建立項目時為使用者自動建立的。雖然不一定要遵循這一約定或其他大多數mvc約定,但建議讀者還是遵循它(現在的程式設計方式提倡“約定優于配置”,這可以省去程式設計過程中很多瑣碎的事情。是以,在可能的情況下,應當優先遵循約定——譯者注)——至少因為它有助于讀者弄清本書示例的意思。

為了對項目添加一個控制器,在visual studio的“solution explorer(解決方案資料總管)”視窗中右擊“controllers”檔案夾,從彈出菜單中選擇“add(添加)”→“controller(控制器)”,如圖2-5所示。

《精通 ASP.NET MVC 4》----2.2 建立ASP.NET MVC新項目

當“add controller(添加控制器)”對話框出現時,将其命名為“homecontroller”,如圖3-5所示。這是另一個約定:對控制器的命名應當是有含義的,并以“controller”結尾。

這個對話框的“scaffolding options(支架選項)”部分,讓人們能夠使用帶有正常功能的模闆來建立控制器。這裡暫不打算使用這一特性,是以,確定在“template(模闆)”下拉菜單中選擇了“empty mvc controller(空的mvc控制器)”條目,如圖2-6所示。

《精通 ASP.NET MVC 4》----2.2 建立ASP.NET MVC新項目

點選“add(添加)”按鈕,建立這個控制器。visual studio會在controllers檔案夾中建立一個新的c#代碼檔案,其名稱為“homecontroller.cs”,打開它以便編輯。清單2-1已經列出了visual studio放入這個類檔案中的預設内容。可以看到,這個類的名稱為“homecontroller”,而且它派生于system.web.mvc.controller。

清單2-1 homecontroller類的預設内容

mvc的一個良好開端是對該控制器類做一些簡單修改。編輯homecontroller.cs檔案中的代碼,使之與清單2-2吻合——本書已高亮了這些修改,以使它們易于看到。

清單2-2 修改homecontroller類

這個示例并未建立任何讓人興奮的東西,但它有助于很好的示範。修改名稱為“index”的動作方法,以使它傳回字元串“hello,world”。通過選擇visual studio的“debug(調試)”菜單中的“startdebugging(開始調試)”,再次運作這個項目,浏覽器将顯示這個index動作方法的結果,如圖2-7所示。

《精通 ASP.NET MVC 4》----2.2 建立ASP.NET MVC新項目

除模型、視圖、控制器之外,mvc應用程式也使用asp.net的路由系統(routing system),它決定了如何把url映射到特定的控制器和動作上。當visual studio建立mvc項目時,它添加了一些預設的路由,以使系統能夠開始工作。讀者可以請求以下任何一個url,它們都将被引向homecontroller上的index動作。

/

/home

/home/index

這是受益于遵循mvc約定的一個很好的例子。在這個例子中,這種約定是:有一個名為“homecontroller”的控制器,并且,它是mvc應用程式的起點(渲染首頁的預設控制器——譯者注)。visual studio為一個新項目建立的預設路由——假設遵循了這一約定。因為确實遵循了這個約定(指前面的操作過程中,遵循了控制器的命名約定和index動作方法的命名約定——譯者注),是以獲得了對前面所列出的url的支援。

如果不遵循這種約定,就需要修改路由,以指向所建立的控制器。對于這個簡單例子,預設配置就是本書所需要的。

提示:可以打開global.asax.cs檔案來檢視和編輯路由配置。在第7章中,本書将建立自定義路由條目,而在第13章和第14章中,讀者将了解更多關于路由能做什麼的内容。

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。

繼續閱讀