2017-08-11 59 views
0

在我升级到ASPNETZERO V4.X之后,我在多种ASPNETZERO/ABP模板中遇到了奇怪的验证错误。我正在处理多个项目,并且正在使用.NET MVC5模板,.NET Core MVC模板和带有BSB管理主题的ABP开源模板。我在所有这些不同的项目中都得到了相同的验证消息。这是一个例子。ASPNETZERO - 验证问题

Chrome console showing validation error

Chrome console showing values sent to app service

Another error example from ABP open source version

有谁知道我怎么能找到这个错误的根源。如何调试ABP验证代码以找到此错误的根本原因? 此外,有时错误不会出现,应用程序服务调用正常执行。但是,然后你再次尝试完全一样,一分钟后,它就失败了!

回答

0

所以今天,我能够找到一条错误消息获取登录内部日志文件。我发现下面记录的错误。

Newtonsoft.Json.JsonSerializationException:将值{null}转换为键入'System.Decimal'时出错。 Path'Width',第1行,第99位。---> System.InvalidCastException:空对象不能转换为值类型。 at System.Convert.ChangeType(Object value,Type conversionType,IFormatProvider provider) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader,Object value,CultureInfo culture,JsonContract contract,Type targetType) --- End of内部异常堆栈跟踪--- at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader,Object value,CultureInfo culture,JsonContract contract,Type targetType) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader,Type JSONProperty成员,JsonContainerContract containerContract,JsonProperty容器成员,对象existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(J sonProperty属性,JsonConverter propertyConverter,JsonContainerContract containerContract,JsonProperty containerProperty,JsonReader阅读器,对象目标) 在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(对象NEWOBJECT,JsonReader读卡器,JsonObjectContract合同,JsonProperty构件,字符串ID)

这是我的一个小数属性(宽度),这是可选的,不需要报告。使用下面的代码将属性更改为接受null。

decimal?

更改后,它解决了其中一个实体的验证错误。我会检查其他项目是否有相同的问题。