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();
            }

 

posted @ 2018-04-07 16:28  mebius  阅读(330)  评论(0编辑  收藏  举报