modelbinder機制原理

ModelBinder介紹

一.問題描述

當運行一個Mvc時,你控制器中的Action方法須要參數數據;而這些參數數據包含在HTTP請求中,包括表單上的ValueURL中的參數等。但問題是控制器中的Action方法和表單數據是怎麼關聯的呢?數據庫

 

 

二.解決方案

微軟ModelBinder的功能就是將這些個表單上的ValueURL中的參數換成對象,而後將這些對象綁定到Action的參數上面。如圖:服務器

3、下面是一個簡單的案例的操做步驟

(一)創建Mvc項目

   首先創建一個Mvc應用程序,具體步驟如圖:spa

 

 

 

 

 

 

 

 

 

 

 

(二)創建數據庫

通常數據庫應該放在AppData文件夾下,固然,你也能夠放在其餘地方對象

 

 

通常把ID設爲主鍵,標示規範設爲trueget

 

 

 

 

(三)根據數據庫生成Model

右鍵Models選擇添加新建項,選擇數據中的實體數據模型源碼

 

 

 

 

這一步須要安裝EFTools6.1.0ForVS2012

(下載地址:http://pan.baidu.com/s/1y82vG

也能夠選擇來自數據庫的CodeFirst選項,點擊下一步,選擇數據庫表等,生成對應的Modelit

 

 

 

(四)添加Policy模型

右鍵單擊Models文件夾,選擇添加類,來添加Policy實體類。具體代碼如圖io

 

 

(五)添加User控制器(包含模板,模型和數據上下文)

添加User控制器,選擇包含讀/寫操做和視圖的MVC控制器,模型類和數據上下文,會自動在Control中生成相關增刪查改的方法並在視圖中生成相應的視圖。模板

 

 

 

 

(六)添加Policy控制器

添加空的Policy控制器,編寫Edit方法。class

 

 

 

(添加Policy視圖

Edit方法中右鍵選擇添加視圖,選擇模型類Policy,選擇Edit模板,會在視圖中生成與Edit相關的Html代碼。

 

 

對於複合實體,系統默認不會生成相應代碼,須要手動添加。

 

 

(八)運行查看

F5運行查看

 

 

 

首先, 在MVC中, 當一個請求發送到服務器,先是要通過Route匹配, 找到對應的Controller和Action, 而後纔是構建Action中的參數,也就是Model Binder的過程

 

 

 

附錄:源碼下載地址http://pan.baidu.com/s/1iZxU2

相關文章
相關標籤/搜索