模型绑定没有设置器的实体
Posted
技术标签:
【中文标题】模型绑定没有设置器的实体【英文标题】:Model binding an entity without setters 【发布时间】:2012-02-15 13:41:17 【问题描述】:在我的域中,我的实体在属性上没有设置器(奇怪的特殊情况除外)。因此,所有值都必须通过构造函数传入。
问题是,现在我使用域实体作为 CREATE 视图的模型,当模型绑定器尝试将表单字段绑定到模型时,它会抛出 No parameterless constructor defined for this object
错误。
解决这个问题的最佳方法是什么。我能想到的是:
-
创建新的模型绑定器???
为视图中使用的每个实体创建一个映射器,将
FormCollection
转换为实体。
创建实体的 ViewModel 表示并将其映射到原始实体类,然后再将 MVC 发送到我的服务层。
重构实体以包含设置器。
我真的不想通过包含 setter 来打开我的实体。有人有任何提示吗?最简单/最干净的方式是理想的。
【问题讨论】:
【参考方案1】:最简洁/推荐/防错/易于维护的方法是3.创建视图模型。 ViewModel 将只有创建视图所需的字段。您验证这一点,转换为领域模型(可能使用AutoMapper)并发送到服务层。
【讨论】:
以上是关于模型绑定没有设置器的实体的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 4.4:为图像文件上传保留的实体/模型属性由表单系统设置更新(结果始终为空 - 没有错误)
如何设置具有多个实体绑定的 ElasticSearch 索引结构