何时使用IModelBinder与DefaultModelBinder

Jef*_*ddy 15 c# asp.net-mvc-3

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

提前致谢.

Fal*_*nwe 10

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

Pro继承自DefaultModelBinder:您可以重用DefaultModelBinder中的许多行为,并仅覆盖您想要的行为.您不必从头开始实施.

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

正确的方法在很大程度上取决于您对自定义绑定器的需求,但DefaultModelBinder的行为通常是您所需要的(在大多数情况下,普通的DefaultModelBinder确实是您想要的绑定器).