ASP.NET MVC概念:
ASP.NET MVC 是微軟官方提供的MVC模式,說白了,ASP.NET MVC知識開發ASP.NET Web
應用程序的一個框架而已,而且其只是一個表示層框架,同時也是微軟的第一個開源項目。
使用ASP.NET開發web應用程序方式
- WebForm方式
- Asp.Net MVC 方式
注意:WebForm方式和Asp.Net MVC方式是使用asp.net開發web應用程序的兩種並行方式,mvc(以下簡稱mvc)的目的並不是取代WebForm,而是web開發的另外一種選擇而已。
MVC模式簡介:
MVC模式是一種表現模式。它將web應用程序分成三個主要組件,即:視圖(View)、控制器(Controller)和模型(Model)。
M:Model主要是存儲或者是處理數據的組件
Model其實是實現業務邏輯層對實體類相應數據庫操作,如CRUD(Create/Retrieve/Update/Delete)。它包括數據、驗證規則、數據訪問和業務邏輯等應用程序信息。
V:View是用戶接口層組件。主要是將Model中的數據展示給用戶。
C:Controller處理用戶交互,從Model中獲取數據並將數據傳給指定的View
要點:
01.M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。
02.控制器隔離了業務邏輯和View耦合,使得業務邏輯和數據規則等很容易改變而不影響到前台頁面。
03.View和Controller都可以直接請求Model,但是Model不依賴View和Controller
04.Controller可以直接請求View來顯示具體頁面,View不依賴Controller
第一個Asp.Net MVC程序
案例:下面我們通過向EFFirst數據庫的Customer表中添加數據數據並且將所有用戶信息展示到對應頁面的方式,來書寫第一個Asp.Net MVC應用程序.
Customer表結構:
CustId(客戶編號):主鍵自動增長
CustName(客戶姓名)
CustAddress(客戶地址)
01.首先創建MVC2.0的項目
對解決方案點右鍵,新建項目,如下圖

將項目名稱命名為MyMVC,然后點擊確定,如下圖

選擇否,點擊確定

接下來對項目的目錄結構進行剖析:
App_Data;在該文件夾下的文件是不同通過URL訪問的,起到保護文件的作用
Content:項目用到的素材和樣式等的文件夾,例如我們可以將Image文件夾和Css文件夾放到Content文件夾中。
Controllers:控制器存儲文件夾
Models:模型存放文件夾
Scripts:js(javascript)文件存儲文件夾
Views:視圖存放文件夾
02.創建控制器UserInfoController
03.創建視圖Register
Register頁面對Controller發起請求,請求可以分兩種,get和post,所以我們寫了兩個action 。為了方便后續操作,我們可以對action寫一個重載。無參的Register()用來處理get請求 ,帶參數的Register(FormCollection collection)用來處理post請求,如下圖:

然后對無參的Register點右鍵,選擇添加視圖菜單項

點擊添加按鈕,則在Views文件夾中會自動創建出一個名稱為UserInfo(和action所在的控制器名稱相同)的文件夾,並且在該文件夾下創建一個名稱為Register的aspx文件,注意:這里的aspx文件沒有后綴名為.cs的文件。
在Register中書寫html代碼如下所示:

既然是注冊頁面,必須將用戶輸入的信息提交到服務器,此時我們可以使用form表單。為其action屬性設置屬性值為:”/UserInfo/Register”,UserInfo代表的是UserInfoController,Register代表UserInfoController下的action。也即是說我們將信息提交到了Register這個action。
用戶填寫完信息后,流程跳轉到了UserInfoController,此時我們可以在接收Post請求的action中書寫如下代碼,

說明:return RedirectToAction(“Index”)作用是跳轉到名稱為Index的action繼續執行。
04.創建action:Index和視圖Index

用同樣的方式對Index點右鍵,創建View:Index,

1 <style type="text/css"> 2 th,td { 3 text-align: center; 4 } 5 </style> 6 <h2>微冷的雨:用戶詳細信息頁面</h2> 7 <h2>由於顧客的數據肯定會出現多條,因此使用table顯示</h2> 8 <table width="100%"> 9 <thead> 10 <tr> 11 <td>編號</td> 12 <td>用戶姓名</td> 13 <td>用戶地址</td> 14 </tr> 15 </thead> 16 <tbody> 17 <% foreach (var item in (IEnumerable<Customer>)ViewData["Customer"]) 18 {%> 19 <tr> 20 <td><%:item.CustId %></td> 21 <td><%:item.CustName %></td> 22 <td><%:item.CustAddress %></td> 23 </tr> 24 <%} 25 %> 26 </tbody> 27 </table>
最終我們可以實現如下效果

至此,今天的文章結束了。
當前寫第一個MVC應用程序還用到了EF的相關知識,如果讀者不是很清楚,可以參考本人的http://www.cnblogs.com/weilengdeyu/archive/2013/01/19/2868022.html
