问题很简单:我应该何时实施IModelBinder
以及何时IModelBinderProvider
?
提前致谢!
答案 0 :(得分:2)
IModelBinderProvider
是一家提供IModelBinder
实施的工厂。对于类型始终使用相同模型绑定器的简单情况,您只需使用IModelBinder。您可以针对更复杂的情况实施IModelBinderProvider,您需要动态确定要使用的模型绑定器。
Jimmy Bogard和Brad 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)
为您自定义模型