【发布时间】:2014-08-23 18:57:22
【问题描述】:
我在 MVC 中有一个编辑表单,在我的编辑 POST 操作中,我在保存之前进行了检查,以确保我没有创建重复项。因此,例如,如果我更改表单上的标题,那么我会检查该标题是否已存在。
但是,如果我打开编辑表单然后提交而不更改任何内容,则操作会检查标题是否存在并将其标记为重复!
有什么方法可以检查模型是否未更改,如果是,则跳过所有重复检查并尝试保存?
现在我唯一的支票是:
if (ModelState.IsValid)
{
ModelState 是否有一些等价物没有改变?
【问题讨论】:
-
当用户“关闭表单”时,您不应该对同一操作执行 POST。当用户取消编辑时,您应该简单地将他重定向到其他地方。这不可能吗?
-
我不这样做。当用户单击“保存”时,我返回到具有 [HttpPost] 的编辑操作。我的问题是,如果用户没有更改任何内容,我会遇到错误,因为它认为记录是原始记录的副本。
-
因此,如果用户更改某些内容,您要保存一条新记录。如果他不做任何改变,那么你就直接忽略他的动作。我理解正确了吗?
-
问题是我怎么知道他没有做任何改变?