【发布时间】:2015-03-23 07:22:10
【问题描述】:
在我的 MVC POST 例程中,我可以查看哪些内容(可能与 ModelState 相关?)让我知道用户是否更改了任何模型属性?换句话说,用户在表单上输入的值是否与填充视图模型并呈现表单的 GET 操作提供的值不同?
【问题讨论】:
-
不行,您需要重新获取原件并比较值。
-
这不是处理程序或控制器的真正工作。将其分配给 EF 实体,更改跟踪器可能会为您提供帮助(我不确定它是否可以通过属性访问)。
-
好的...因此,在我的 POST 例程中,我将每个模型变量分配给其关联的 EF 实体属性,然后调用
dbContext.SaveChanges。在更新 EF 实体属性(值可能未更改)和调用SaveChanges之间,我如何询问 DbContext 是否已更改任何值? -
dbContext.ChangeTracker.HasChanges();是否按照其名称和文档的含义进行操作?看起来我应该能够查询HasChanges方法以查看用户是否更改了任何原始值... -
经过测试
dbContext.ChangeTracker.HasChanges()似乎正是我想要的:如果用户更改了任何实体值,它返回true。感谢您在正确的方向上给我一个快速的踢。我将发布我自己问题的答案。
标签: asp.net-mvc