IModelBinder和IModelBinderProvider asp.net mvc 3之间的区别

时间:2012-12-30 09:25:32

标签: asp.net asp.net-mvc asp.net-mvc-3 modelbinders

问题很简单:我应该何时实施IModelBinder以及何时IModelBinderProvider

提前致谢!

2 个答案:

答案 0 :(得分:2)

IModelBinderProvider是一家提供IModelBinder实施的工厂。对于类型始终使用相同模型绑定器的简单情况,您只需使用IModelBinder。您可以针对更复杂的情况实施IModelBinderProvider,您需要动态确定要使用的模型绑定器。

Jimmy BogardBrad Wilson解释得比我好。

答案 1 :(得分:0)

当您使用IModelBinderProvider时,仍然需要将IModelBinder用于绑定器类

  We use IModelBinderProvider to help us don't need to register manual like
    ModelBinders.Binders.Add(typeof(HomePageModels1), new HomeCustomBinder1());
    ModelBinders.Binders.Add(typeof(HomePageModels2), new HomeCustomBinder2());

...

我们只需要添加1行

ModelBinderProviders.BinderProviders.Add(new YourModelBinderProvider());

何时控制器有参数。它会自动调用方法

public IModelBinder GetBinder(Type modelType)

为您自定义模型