程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 體驗Asp.Net Mvc Preview5(3)-探索ModelBinder的工作原理

體驗Asp.Net Mvc Preview5(3)-探索ModelBinder的工作原理

編輯:關於ASP.NET

在前面的兩篇文章中,我們研究了Asp.Net Mvc Preview5的ViewEingine的改進,從本篇開始,我們開始研究Preview5中的新特性:ModelBinder.

首先我們來了解下什麼是ModelBinder特性,這有什麼用處,在以前的版本中,如果我們要在Action中獲取數據,一般有三種方式,一是通過Action的參數,但是由於某些原因,這兒只能獲取到簡單類型的參數,比如int,string等,第二種方式是通過Request來獲取,但是當數據較多的時候,這個方式實在太費勁了.三是使用BindingHelperExtensions中的擴展方法,但是這種方式還是不能滿足我們的要求.我們理想中的方式是:

如果能這樣寫,將直接能在參數中方便獲取傳入對象.會使得程序的結構更加合理.在新版中,框架引入ModelBinder來解決了這個問題,使得我們理想中的效果得以實現.

ModlBinder的作用就是建立一種html參數和對象的轉換關系,可以通過系統內置或者用戶添加的Binder來完成轉換過程,每當Action中含有參數的時候,系統會自動查詢url或者表單中是否含有相應的值,然後調用一定的ModelBinder對象來將參數轉化成傳入的值.

下面我們來分析下ModelBinder的工作過程.我們知道,Action的執行實際上實在ControllerActionInvoker中進行的,這個類中提供了一些方法,在執行的過程中,它首先找到Controller中Action對應的Method,然後判斷Method是否帶有參數,如果有參數,將使用特定的方式來對這些參數賦值.這部分具體的代碼我們弄出來瞧瞧:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved