asp.net core 操作误区
更新时提示数据变化错误
在更新事件中提示下面错误,在网上找了一下,大部分都是说是冲突问题,但是测试时同时只有一个客户端在进行操作,不应该会有冲突问题,后来发现编辑加载时的ID,和更新提交时的ID不同了,原来是在编辑界面上没有为ID写绑定的字段,应该是在提交时发现ID为空,自动给生成了新的ID。
ID为主键,使用的自动生成的GUID。
在编辑时主要字段还是不能漏的啊...
Database operation expected to affect 1 row(s) but actually affected 0 row(s). Data may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions.
关于ModelState.IsValid
model的属性如果不加验证相关的特性,ModelState.IsValid会永远为true;如果加了验证相关的特性,不满足验证规则时,ModelState.IsValid为false.
接收到参数属性类型与Model定义不符时,ModelState.IsValid也会为false。
可以使用以下代码查询具体的错误
if (!ModelState.IsValid) { var msg = string.Empty; foreach (var value in ModelState.Values) { if (value.Errors.Count > 0) { foreach (var error in value.Errors) { msg = msg + error.ErrorMessage; } } } Console.WriteLine(msg); return Page(); }