2011-12-16 68 views
14

我有一個意願,不會與默認模型結合工作模式的MVC3站點。我一直在尋找在線代碼樣本,看來我可以創建一個自定義的模型綁定,要麼實現IModelBinder或DefaultModelBinder繼承。有人可以解釋每種方法的優點/缺點,並可能舉例說明何時會使用一種方法而不是其他方法。何時使用IModelBinder與DefaultModelBinder

在此先感謝。

+0

您可能已經看到了它,但是這裏有幾個很好的參考:http://stackoverflow.com/questions/1550520/best-practices-when-implementing-imodelbinder – Shawn 2011-12-16 14:52:29

回答

9

兩種方法其實都是一樣:DefaultModelbinder實現IModelBinder,因此繼承了它是作爲另一個好實施IModelBinder的方式。

臨從DefaultModelBinder繼承:您可以重複使用很多從DefaultModelBinder的行爲,並覆蓋只有你想要的人。您不必從頭開始實施。

專業製作您自己的IModelBinder實現:您只有一種方法可以實現(IModelBinder.BindModel),並且您可以完全控制您的實現正在做什麼。

正確的方法在很大程度上取決於你需要從你的自定義綁定器中得到什麼,但DefaultModelBinder的行爲通常是你需要的(在大多數情況下,普通的老的DefaultModelBinder確實是你想要的綁定器)。

+0

因此,基於你所說的,如果我有3個屬性,MVC默認綁定不起作用,我應該從DefaultModelBinder繼承,允許它綁定我的模型的大部分,然後處理綁定我的3個獨特的屬性? – 2011-12-16 16:02:54

相關問題