我有一个MVC3站点,它有一个不能使用默认模型绑定的模型。我一直在线查看代码示例,似乎可以创建一个实现IModelBinder或继承自DefaultModelBinder的自定义模型绑定器。有人能解释一下每种方法的优缺点,以及何时使用一种方法而不是另一种方法的可能示例吗?
提前谢谢。
发布于 2011-12-16 23:00:01
这两种方法实际上是相同的: DefaultModelbinder实现了IModelBinder,因此继承它是实现IModelBinder的一种和另一种一样好的方法。
支持从DefaultModelBinder继承:您可以重用DefaultModelBinder中的许多行为,并且只覆盖您想要的行为。你不需要从头开始实现。
支持自己实现IModelBinder:您只需要实现一个方法(IModelBinder.BindModel),并且您可以完全控制您的实现正在做什么。
正确的方式在很大程度上取决于您需要从自定义绑定器中获得什么,但是DefaultModelBinder的行为通常是您所需要的(并且在大多数情况下,普通的老式DefaultModelBinder确实是您想要的绑定器)。
https://stackoverflow.com/questions/8535802
复制相似问题