只是更多地使用自定义模型绑定器的一些想法。我目前仍在使用 IMapper 接口来执行此操作,但想知道自定义绑定器的部分目的是否是将视图模型或输入模型映射到业务实体?如果我使用 MVC 自定义活页夹,我可以看到可能会有一些限制。在 MVC 中使用自定义绑定器有什么好处?我的应用会获得更好的性能吗?
问问题
1498 次
1 回答
3
简短的回答是不,你不应该
ModelBinder
本身就是 ASP.NET MVC 基础结构的一部分。如果您查看 ASP.NET MVC 管道(PDF),您会发现它的工作是将发布的 Web 表单数据(基本上是字符串)或查询字符串从 URL 转换为特定类的实例。
ASP.NET MVC 框架有一个适用于 99% 的情况的DefaultModelBinder 。自定义模型绑定器可用于标准数据转换失败的情况,例如$ 1,234.56
从文本框映射decimal
到1234.56
此外,使用单个BindModel()方法ModelBinder
实现接口。此方法需要难以“手工制作”的参数来使用它们,并且与您的场景完全不相关。IModelBinder
您真正要寻找的是
-视图模型和业务对象之间的自定义对象映射,您手动将一个对象属性值分配给另一个对象-
或者利用诸如 Automapper 或 ValueInjecter 之类的库/框架来处理对象映射的麻烦。
- 或两者兼而有之
于 2013-06-12T07:50:20.730 回答