轉自 http://firechun.blog.163.com/blog/static/3180452220110270937467/
本文轉自http://www.asp.net/mvc,由本人翻譯整理。
1 月31日補充:打算在公司的新項目中使用MVC,因此想把這篇文章翻譯過來,做為公司開發小組的參考資料。最初看到這篇文章時,作者是用MVC 2實現的,但現在已經是針對MVC 3寫的教程了。原來擔心微軟新推出的產品總是不太令人放心,加上教程中使用了Razor文法,不想讓開發小組成員因為學習太多新的知識而延誤開發進度,所 以原本準備用MVC 2實現本教程。在翻譯過程中,發現MVC 3的一些新特性著實令人不想放棄,尤其後面使用了MVC 2中沒有的一些類和方法,於是決定還是按原文翻譯。不過前面5章我全部用MVC 2實現,要重新寫一遍是一件非常可怕的事……,所以只能在原來翻譯的基礎上盡量修改,請對照原文看吧……如果有不同的地方,基本上是把原文代碼用MVC 2重寫了……
再註:從這裡可以下載MVC 3安裝包:http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=d2928bc1-f48c-4e95-a064-2a455a22c8f6,安裝之後,如果你喜歡中文介面,在下面的語言選項中改成簡體中文,下載那個1.8M的中文安裝包再安裝一次就可以了。注意一定要先安裝20.9M的英文安裝包,再安裝中文包才可以。
概述:
MVC Music Store是一個應用程式教程,引導你如何使用MVC和Visual Studio進行Web開發。我們將從最基礎的地方開始,因此,即使你只有初級Web開發經驗也沒問題。
我們將建立一個簡單的音樂倉庫,主要包含三個部份發:購物、審核和管理。
訪問者可以按類別瀏覽唱片
可以查看指定的唱片並把它添加到購物車
可以檢視自己的購物車,移除任何不想要的商品
在審核處理時將會提示訪問者登入或者註冊一個使用者帳號
建立帳號之後,訪問者可以填寫運輸及付款資訊以完成訂單。為了讓事情更簡單一些,我們決定啟動一個令人吃驚的促銷活動:只要輸入促銷代碼“FREE”,全部免費!
訂單完成之後,訪問者可以看到一個簡單的確認頁面。
在附加的面向客戶的頁面中,我們建立一個嵌入式管理單元,顯示唱片列表以便於管理員建立、編輯和刪除唱片。
教 程將從使用免費的Visual Web Developer 2010 Express (本人註:用VS2010+ASP.NET MVC 3補丁包也可以)建立新的ASP.NET MVC 3開始,逐步增加功能以建立完整功能的應用程式。包括資料庫訪問、表單提交、資料驗證、使用主版頁面以儲存網站整體風格、使用AJAX進行頁面重新整理和驗證、 使用者登入等等。
你可以一步步跟著我們一起完成,也可以從這裡下載完整代碼:http://mvcmusicstore.codeplex.com
註:原文使用Visual Web Developer 2010 Express ,並且建立的是MVC 3項目(我上次看這篇文章時還是MVC 2……),我用MVC 2和VS2010中文版代替,以下載圖不是轉自原網站,而是來自我自己的開發介面。
1. 檔案-> 新項目
我們從在VS2010的檔案菜單中選擇“建立->項目”開始,進入“建立項目”對話方塊
選擇“Visual C#->Web”,選擇“ASP.NET MVC 3 空 Web 應用程式”,將項目命名為“MvcMusicStore”,按“確定”按紐。這將顯示第二個對話方塊讓我們確定MVC項目的某些設定。選擇“空”模板,並且讓視圖引擎選定為Razor,按下“確定”按紐:
在“方案總管”中,我們可以看到我們的新項目。
“ASP.NET MVC 2 空 Web 應用程式”並不完全是空的——它建立了一個基本的目錄結構:
ASP.NET MVC使用某種命名規範為檔案夾命名
| 檔案夾 |
作用 |
| /Controllers |
Controllers處理來自瀏覽器的輸入,決定要做什麼,並且把結果返回給使用者 |
| /Views |
Views包含UI模板 |
| /Models |
Models包含資料及對資料的操作 |
| /Content |
包含圖片、CSS及其它靜態內容 |
| /Script |
包含JavaScript檔案 |
| /Add_Data |
包含資料庫檔案(註:通常用來儲存網站配置的SQL Express資料庫、Access資料庫等隨網站一起發布的資料庫檔案。使用Sql Server、MySql之類資料庫的可以無視它) |
即 使是一個“空”的ASP.NET MVC應用程式也會包含這些檔案夾,因為ASP.NET MVC架構傾向於“約定優於配置”,並且基於檔案夾命名規範來構造某些預設設定。例如,預設情況下,控制器在Views檔案夾中尋找視圖,而不需要你在代 碼中特別指定。使用預設約定可以降低你的代碼量,並且可以使其他開發人員更容易理解你的項目。我們會在應用程式中更多地使用這些約定。