【发布时间】:2011-09-01 21:05:06
【问题描述】:
我经常发现自己只想呈现和编辑模型中的某些字段。假设我有一个表示地址的模型,也许我只想让表单更新城市和邮政编码字段(不好的例子,但希望它能解释场景)。
我知道两种方法:
1) 在表单的隐藏输入元素中保留不需要的字段,或者... 2) 创建一个专门的视图模型,只定义我需要的字段。
我赞成选项 #2,但我没有一种干净的方式将视图模型中的数据合并回控制器操作中的“真实”模型。目前,我遵循这种方法...
1) 将记录存储在视图模型的隐藏字段中 2)当页面回发时,控制器检索原始记录,我手动将视图模型中的每个字段分配给真实模型 3) 将真实模型保存回数据存储区。
这可行,但工作量很大,很容易错过分配/重新分配,我想知道是否有人知道另一种方法?
【问题讨论】:
-
你反对使用Session吗?
-
我们通常会尽量避免使用 session,但除了我们发现它难以管理(在清理方面)之外没有任何真正的理由这样做
-
我现在正在尝试使用自定义模型绑定,其中首先绑定身份属性,触发 VM 从存储库加载,然后,剩余的绑定过程像合并一样运行。 See my S.O. question and proposed answer here
标签: asp.net-mvc model