我创建了一个完美运行的自定义模型Binder。
我的所有ViewModel都扩展了BaseViewModel,但是当我为BaseViewModel注册Model Binder时,它就不会运行。
如果我手动注册每个ViewModel""像以下一行一样,它完美地运作
ModelBinders.Binders[typeof(ArticlesViewModel)] = new ContextDataBinder();
如果有办法为所有我的viewModel进行这种注册,而不是逐个注册所有viewModel ,我需要知道。
答案 0 :(得分:2)
正如我在原帖中评论的那样,您可以通过替换默认的活页夹
来注册所有型号的眼罩ModelBinders.Binders.DefaultBinder = new ContextDataBinder();
然而对我的特定情况没有用,因为框架自动创建的ViewModel总是返回先前的ViewModel(在搜索中,例如它不会返回我的过滤结果但所有的结果)。
我最终创建了一个类型列表,其中包含实际需要通过ModelBinder传递的ViewModel类型,并且foreach e将它们逐个注册。