ASP.NET MVC 为所有 ViewModel 注册自定义模型绑定器
ASP.NET MVC Register custom Model Binder for all ViewModels
我创建了一个完美运行的自定义模型活页夹。
我所有的 ViewModel 都扩展了 BaseViewModel,但是当我为 BaseViewModel 注册 Model Binder 时,它并没有 运行。
如果我像下面这样注册每个 ViewModel "by hand",它就可以完美运行
ModelBinders.Binders[typeof(ArticlesViewModel)] = new ContextDataBinder();
我需要知道是否有一种方法可以为 我的所有 viewModel 进行这种注册,而无需一个一个地注册所有 viewModel。
正如我原来评论的那样post你可以通过替换默认活页夹来注册所有模型眼罩
ModelBinders.Binders.DefaultBinder = new ContextDataBinder();
但是 对我的具体情况不起作用 因为框架自动创建的 ViewModel 总是 return 以前的 ViewModel(例如在搜索中它不会' t return 我过滤了结果但所有结果)。
我最终创建了一个类型列表,其中仅包含实际需要通过 ModelBinder 传递的 ViewModel 的类型,并使用 foreach e 将它们一一注册。
我创建了一个完美运行的自定义模型活页夹。
我所有的 ViewModel 都扩展了 BaseViewModel,但是当我为 BaseViewModel 注册 Model Binder 时,它并没有 运行。
如果我像下面这样注册每个 ViewModel "by hand",它就可以完美运行
ModelBinders.Binders[typeof(ArticlesViewModel)] = new ContextDataBinder();
我需要知道是否有一种方法可以为 我的所有 viewModel 进行这种注册,而无需一个一个地注册所有 viewModel。
正如我原来评论的那样post你可以通过替换默认活页夹来注册所有模型眼罩
ModelBinders.Binders.DefaultBinder = new ContextDataBinder();
但是 对我的具体情况不起作用 因为框架自动创建的 ViewModel 总是 return 以前的 ViewModel(例如在搜索中它不会' t return 我过滤了结果但所有结果)。
我最终创建了一个类型列表,其中仅包含实际需要通过 ModelBinder 传递的 ViewModel 的类型,并使用 foreach e 将它们一一注册。