asp.net-mvc - 当您的 View 模型没有与域模型一样多的字段时,您如何忽略/保留 MVC 中的值?

标签 asp.net-mvc mvvm fluent-nhibernate viewmodel automapper

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

因为我还使用 AutoMapper 将我的 View 模型映射到我的域实体,所以我不能只从数据库中加载我的对象的新副本并手动设置 2 个缺失的属性。保留那些我不想编辑的字段的最佳方法是什么?

一种可行的方法是将值保留在我的 View 上隐藏的输入字段中。这行得通,但感觉很恶心。我感谢任何建议。我的 AutoMapper 中有没有办法配置这个所需的功能?

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

最佳答案

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

关于asp.net-mvc - 当您的 View 模型没有与域模型一样多的字段时,您如何忽略/保留 MVC 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274575/

相关文章:

asp.net-mvc - 为什么我的 ASP MVC View 无法第二次构建

c# - 为什么在 Asp.Net MVC 中提交表单时 session 过期?

wpf - Caliburn Micro,从 MV 集中聚焦

nhibernate - Fluent NHibernate 相当于一对一关系的逆向

c# - 流利的休眠状态 : How do I map an entity with a property who's type is an interface?

asp.net-mvc - mvc.net 验证是否支持 ValidationGroup 的概念

javascript - ASP.net jQuery 对话框未完成发布

c# - 这种 MVVM 方法会产生内存泄漏吗?

wpf - MVVM WPF datagrid数据录入问题

nhibernate - 使用 NHibernate 编写计算属性