我应该使用自定义模型绑定器来绑定视图模型到实体吗?



更多地使用自定义模型绑定器。我目前仍在使用IMapper接口来这样做,尽管想知道自定义绑定的部分目的是将视图模型或输入模型映射到业务实体吗?我可以看到,如果我使用MVC自定义绑定可能会有一些限制。在MVC中使用自定义绑定的优势是什么?我的应用程序会获得更好的性能吗?

简短的回答是不,你不应该

ModelBinder本身是ASP的一部分。。NET MVC基础架构。如果你看一下ASP。. NET MVC管道(PDF),你会看到它的工作是将发布的web表单数据(基本上是字符串)或查询字符串从URL转换为特定类的实例。
ASP。. NET MVC框架有一个DefaultModelBinder适用于99%的情况。自定义模型绑定可以在标准数据转换失败的情况下使用,例如将$ 1,234.56从文本框映射到1234.56

decimal值。

ModelBinder用一个BindModel()方法实现了IModelBinder接口。此方法期望的参数很难"手工制作"以使用它们,并且与您的场景完全无关。

你真正要找的是
- 视图模型和业务对象之间的自定义对象映射,您可以手动将一个对象属性值分配给另一个对象
- 利用库/框架,如Automapper或valueinjector照顾对象映射的麻烦远离你
-或两者混合

相关内容

  • 没有找到相关文章

最新更新