gpt4 book ai didi

asp.net-mvc - 表单发布场景和 MVC 中的复杂模型更新

转载 作者:行者123 更新时间:2023-12-04 21:00:08 25 4
gpt4 key购买 nike

很多人写过使用 Automapper 将域对象(模型)映射到 View 模型,我觉得这非常有趣和有用,但我的问题是如何做相反的事情。我理解这个过程的复杂性以及为什么 Automapper 在这种情况下不起作用,但我必须在表单发布时做很多事情,特别是在更新时。

我有一个模型,我将它映射到一个 View 模型,然后向用户呈现一个表单。然后,发布表单,由于模型可能非常复杂,我使用自定义 ModelBinders 来处理响应并构建一个不会直接持久化的新模型。相反,我从数据库加载原始模型并调用一个方法从发布的更新它而不破坏任何东西。但这变得重复,也许有更好的方法。

我见过的示例非常有限且幼稚,但在我们的应用程序中,我们现在可能有 50 多个这样的表单发布场景,并且还在不断增加。

最佳答案

如果你想往另一个方向走,首先创建到另一个方向的 map ,Mapper.Map()

接下来,您可能想要创建类型转换器(Mapper.CreateMap().ConvertUsing()),因为有时表单可能更多...字符串。

然后,您可能需要忽略或使用目标值。可以使用 ForMember(entity => entity.Id, opt => opt.Ignore()) 或 ForMember(entity => entity.ChildCollection, opt => opt.UseDestinationValue()) 进行配置。

最后,您需要使用采用现有目标对象 Mapper.Map(dto, entity) 的重载。

关于asp.net-mvc - 表单发布场景和 MVC 中的复杂模型更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com