模型绑定实体而无需设置器

发布于 2025-01-05 19:59:00 字数 420 浏览 0 评论 0原文

在我的域中,我有一些实体在属性上没有设置器(除了奇怪的特殊情况)。因此,所有值都必须通过构造函数传入。

问题是,现在我使用域实体作为 CREATE 视图的模型,当模型绑定器尝试将表单字段绑定到模型时,它会抛出一个没有为此对象定义无参数构造函数 错误。

解决这个问题的最佳方法是什么?我能想到的是:

  1. 创建一个新的模型活页夹???
  2. 为视图中使用的每个实体创建一个映射器,将 FormCollection 转换为实体。
  3. 创建实体的 ViewModel 表示形式,并将其映射到原始实体类,然后再从 MVC 发送到我的服务层。
  4. 重构实体以包含设置器。

我真的不想通过包含设置器来开放我的实体。有人有什么建议吗?最简单/最干净的方法是理想的。

In my domain I have entities that don't have setters on the properties (except for the odd special case). Therefore all values have to be passed in via the constructor.

Problem is, now that I'm using the domain entities as the model for my CREATE views, when the model binder tries to bind the form fields to the model, it's throwing a No parameterless constructor defined for this object error.

What would be the best way around this. The one's I can think of are:

  1. Create a new model binder???
  2. Create a mapper for each entity used in the view that converts a FormCollection to the entity.
  3. Create a ViewModel representation of the entity and map it to the original entity class before sending out of MVC to my service layer.
  4. Refactor the entities to include setters.

I don't really want to open up my entities by including setters. Does anybody have any tips? The easiest/cleanest way possible is ideal.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一世旳自豪 2025-01-12 19:59:00

最干净/推荐/防错/易于维护的方法是3.创建一个ViewModel。 ViewModel 将仅具有创建视图所需的字段。您验证这一点,转换为域模型(可能使用 AutoMapper)并发送到服务层。

The cleanest/reccommended/error-proof/easy-to-maintain way to do that is 3.Create a ViewModel. ViewModel will have only the fields needed to create the view. You validate that, convert to Domain Models (maybe using AutoMapper) and send to service layer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文