如何在不使用隐藏字段的情况下检测表单字段是否已更改

我正在使用ASP.NET MVC 3,并且需要检测表单字段是否已在服务器端更改。 我知道使用隐藏字段的技巧,但我想知道是否有办法通过使用API​​来做到这一点?

基本上,我有我的模型的编辑屏幕,其中一个字段是可以指定的可选ID。 如果指定了字段,我必须确保它是唯一的(没有其他模型具有它)。 因此,在编辑控制器上,我想运行validation,但仅在该字段已更改时才运行。

请注意,我不需要知道以前的值与新值,只要字段值已更改。

您必须在某处保留旧值的副本,然后进行比较。 您可以将其存储在视图模型中。

确实没有“脏”标志 – MVC实际上更接近于“网络的工作方式”来重用该语句。 发送的所有内容都是名称值对。 没有其他的。 MVC的模型绑定器只是将这些名称与您的对象进行匹配 – 因此,为了真正检测到更改,您必须根据postvalidation真实数据源或比较表单中传递的值 – 在这种情况下 – 最好是哈希到避免伪造。