何时使用IModelBinder与DefaultModelBinder

时间:2011-12-16 14:47:43

标签: c# asp.net-mvc-3

我有一个MVC3网站,其模型不适用于默认模型绑定。我一直在线查看代码示例,看来我可以创建一个自定义模型绑定器,它可以实现IModelBinder,也可以从DefaultModelBinder继承。有人可以解释每种方法的优缺点,也可以说明何时使用一种方法而不是另一种方法的例子。

提前致谢。

1 个答案:

答案 0 :(得分:9)

这两种方法实际上是相同的:DefaultModelbinder实现了IModelBinder,因此从它继承实现IModelBinder的方式与另一种方法一样好。

Pro用于从DefaultModelBinder继承:您可以重用DefaultModelBinder中的许多行为,并仅覆盖您想要的行为。您无需从头开始实施。

Pro用于制作自己的IModelBinder实现:您只有一种方法可以实现(IModelBinder.BindModel),并且您可以完全控制您的实现正在做什么。

正确的方法在很大程度上取决于你需要从自定义绑定器中获得什么,但DefaultModelBinder的行为通常是你需要的(在大多数情况下,普通的DefaultModelBinder确实是你想要的绑定器)。