提及ASP.NET MVC,我想做爲WebForms開發者第一點要問的是:爲何要使用它?個人理解是:MVC是更細節化的框架,「細節可控」意味着你的系統更精緻。具體體如今應用上。MVC的出現,可能正是迎合Web開發愈來愈精緻的需求。就我瞭解的一個大型投資管理電商平臺,所用的架構就是ASP.NET MVC。MVC未來在系統應用的趨勢,極可能就是大型電子商務平臺。固然,WebForms並非被「拋棄」,在快速開發,控件複用上,WebForms依然走在前面。有時候,根據須要,咱們能夠在同一項目中,混合使用這兩種技術。php
環境準備:Windows 7 sp1或以上操做系統 + IE10或以上瀏覽器 + Visual Studio 2013css
1. 打開VS2013,新建一個MVC5項目。html
肯定,選擇MVC模板。jquery
默認生成的項目目錄結構以下bootstrap
目錄文件說明:瀏覽器
目錄或文件 | 內容 |
App_Data | 存放數據文件 |
App_Start | 包含4個類文件,分別是綁定配置,過濾配置,路由配置,開始(驗證)配置。 |
Content | 包含3個CSS文件,注意除了site.css外,亮點是默認集成了在國外很是流行的、Twitter使用的Bootstrap CSS/HTML框架。 |
Controllers | 控制器,包含兩個類文件,分別表示兩個控制器。有關「控制器」更多信息請關注本系列後續文章。 |
fonts | 字體 |
Models | 兩個模型(實體)類 |
Scripts | js文件夾,包含bootstrap.js和jquery-1.10.2.js等。 |
Views | 視圖,即頁面文件夾。包含.cshtml文件。有關cshtml,後續會作詳細介紹。 |
Global.asax | 系統入口 |
packages.config | 重要,記錄系統中關鍵技術框架的版本信息。 |
在多數的Web框架(asp,asp.net form,jsp,php,...)中,URL地址一般映射到磁盤上的具體物理文件,例如,/HelloWord/welcome.php 或 /HelloWod/welcome.aspx ,一般在磁盤上都有一個welcome.php或welcome.aspx文件與之相對應。當一個針對Web應用程序的http請求發送到服務器時,Web框架將請求的處理權交由請求的文件,一般這個文件經過使用HTML標記來生成發送到客戶端的迴應內容。能夠把此過程理解爲「文件式請求」。服務器
MVC怎麼作的呢?架構
MVC框架使用另外一種不一樣的方式將URL路徑直接映射到服務器端的代碼,也就是將URL直接映射到類而不是映射到物理文件。這些被映射到的類被稱爲「控制器類」,他們能夠處理服務器請求,處理用戶輸入和與用戶進行交互,執行應用邏輯和數據邏輯等。控制類將會調用一個獨立的「視圖」組件來產生針對請求的HTML輸出。能夠把此過程理解爲「控制器式請求」。框架
下面用一張圖解釋「控制器式請求」:asp.net
如今咱們能夠作個試驗,驗證下「控制器式請求」。在Controllers文件夾單擊鼠標右鍵,新建一個Controller
選擇MVC5控制器
咱們將這個新建的Controller命名爲HelloWorldController,並將默認代碼改成(很簡單,各位能夠本身寫^_^):
而後重建項目。運行,在瀏覽器中,在站點地址(我這裏是http://localhost:55952,你的端口可能會不一樣)後+/helloworld,效果以下:
一樣,在站點地址後+/helloworld/welcome,效果以下:
經過這個簡單的示例,我想你已理解並對「控制器式請求」有了初步印象。(第一個輸入地址,沒有加index方法名也能訪問,是由於index方法是默認入口。)
事實上,上面這個訪問規則能映射到相應的控制器類和類中的方法,是在App_Start文件夾下RouteConfig.cs文件中定義的。這個類只有一個方法
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }
此方法定義了映射規則和能夠忽略的路由(也叫能夠忽略的訪問地址類型)。
有關URL映射的詳細內容,咱們將在下一章作深刻闡述。
本章主要對ASP.NET MVC5 作一個入門級的介紹,並對MVC的運行原理作了初步探討和驗證。但願這會對還未接觸MVC的童鞋有幫助。本章做爲系列開篇,也將對接下來的文章內容作一個系列探討。
另外,也不忘將先輩們的一句話送給你們:若是你對MVC不感興趣,不要緊的,這徹底是一個「可選」項。要知道,MVC和WebForms是共存的。
最後,
若是您對MVC5感興趣,請持續關注。做者很是但願您能「推薦」一下,並祝工做順利。