当您的视图模型没有与域模型一样多的字段时,如何忽略/保留MVC中的值?

sha*_*bus 6 asp.net-mvc mvvm fluent-nhibernate viewmodel automapper

我有一个网站,我使用fluentNhibernate和Asp.net MVC.我有一个编辑视图,允许用户编辑该记录(对象)的10个属性中的8个.当您提交表单并且模型绑定时,两个不可编辑的字段在视图模型中返回为空字符串或默认的DateTime值,具体取决于属性的类型.

因为我也使用AutoMapper将我的视图模型映射到我的域实体,所以我不能只从数据库加载我的对象的新副本并手动设置2个缺少的属性.什么是坚持那些我不想编辑的领域的最好方法?

一种方法是将值保存在View上的隐藏输入字段中.这有效但感觉很糟糕.我感谢任何建议.我的AutoMapper中有没有办法配置这个所需的功能?

更新: 好的,所以我想我不是要忽略这些字段,我正在努力确保我不会保持null或空字符串值.忽略AutoMapper中的字段就是这样,当我尝试在保存到我的存储库之前映射它们时,它们会被忽略并且为null.

J.W*_*.W. 2

asp.net mvc DefaultModelBinder 是可扩展的,您可以覆盖它以创建您自己的绑定架构。但这将涉及比两个“隐藏输入字段”更多的工作,在我看来,这并不是那么恶心。