我有一个MVC3网站,该网站的模型无法与默认模型绑定(bind)一起使用。我一直在看代码示例,似乎可以创建一个自定义模型活页夹,该活页夹实现IModelBinder或从DefaultModelBinder继承。有人可以解释每种方法的利弊吗,并可能说明何时使用一种方法而不是另一种方法的示例。
提前致谢。
最佳答案
两种方法实际上是相同的:DefaultModelbinder实现IModelBinder,因此从其继承是实现IModelBinder的另一种方法。
从DefaultModelBinder继承的Pro:您可以重用DefaultModelBinder的许多行为,并仅覆盖所需的行为。您不必从头开始实现。
用于制作自己的IModelBinder实现的Pro:您只有一种实现方法(IModelBinder.BindModel
),并且可以完全控制实现的工作。
正确的方法很大程度上取决于您自定义绑定(bind)程序的需求,但是DefaultModelBinder的行为通常就是您所需要的(并且在大多数情况下,纯旧的DefaultModelBinder确实是所需的绑定(bind)程序)。