我最近出版的我的Advanced Controller如何.NET MVC控制器解析參數
新版本這基本上是一個通用控制器(ASHX)作用,對ASP.net Web表單,像一個MVC控制器感它接收到一個請求並自動調用所需的內部方法,根據HTTP動詞解析請求querystring或params中的參數並返回結果。 它做了很多,但這是我主要的初始功能。
對象的創建和水化從請求信息是該項目中最痛苦的一部分,但最後我達到性能做一個MVC控制器相同的請求相似。
就像我說的,.NET MVC控制器實際上做相同的,但我從來沒有設法去了解如何。
舉例來說,如果我這樣做AJAX調用一個MVC控制器:
$.ajax({
type:'GET',
url: 'SomeData/List'
data:{filter: 'whatever'}
});
這將調用接收一個字符串過濾特性的控制方法。
但它可以變得更加複雜,因爲我們可以調用接收復雜類型,嵌套複雜類型和集合和「神奇」的參數出現在正確的控制器參數解析控制器。
有誰知道這管道是在.NET MVC做了什麼?
檢查出[DefaultModelBinder](http://msdn.microsoft.com/en-us/library/system.web.mvc.defaultmodelbinder%28v=vs.108%29.aspx) – Jamiec
沒什麼魔力。這被稱爲模型綁定。你可以谷歌的,或者看看例如http://www.howmvcworks.net/OnModelsAndViewModels/TheBeautyThatIsTheModelBinder –
模型綁定。有一個讀在這裏http://msdn.microsoft.com/en-us/magazine/hh781022.aspx –