代码之家  ›  专栏  ›  技术社区  ›  stoic Kobus Kleynhans

回发后的视图模型

  •  0
  • stoic Kobus Kleynhans  · 技术社区  · 15 年前

    我的页面接受HttpGet上的viewmodel。当我提交表单时,我的HttpPost修饰方法绑定到该模型,一切都很好。。。我可以用模型数据来保存。

    我的问题是: 不是原始模型中的所有值都传递给post,只有表单字段。

    是否有方法将原始模型传递给post方法,并且只更新由表单更新的属性?

    我知道我可以使用隐藏字段来实现这一点,但是视图模型很复杂并且有嵌套的类,因此映射所有这些都将是一件痛苦的事情。我能用一种更简单的方法实现这个目标吗

    塔克斯

    2 回复  |  直到 15 年前
        1
  •  1
  •   Ahmad    15 年前

    只有html中的值 Form 会绑回柱子上。如果需要原始模型中的所有值

    • 您可以在执行Get时将它们作为隐藏字段包括在内,Get将在发布时绑定到模型;或者
    • 使用模型ID(我假设它存在)调用DB以获取相关字段并重新水化对象。
        2
  •  1
  •   Mikael Eliasson    15 年前

    您可以使用JavascriptSerializer首先序列化VM,然后将其保存在一个隐藏字段中。然后,可以通过反序列化该字段,然后应用隐藏字段中字符串中的已发布值,再次创建ViewModel。

    如果绑定到VM,可以先反序列化到它的原始状态,然后使用控制器的TryUpdate方法用发布的值覆盖这些值。