MaxLength + Asp.net Web API - Errors out

本文关键字:Errors out API Web Asp net MaxLength | 更新日期: 2023-09-27 18:22:14

我的PriceDM类中有这个属性。

 [MaxLength(8)]
        public decimal Price { get; set; }

   public void AddPrice([FromBody]PriceDM vm)
        {
}

我一直通过得到这个错误

{"消息":"发生错误。","ExceptionMessage":"无法强制转换类型为"System.Decimal"的对象"System.Array".","ExceptionType":"System.InvalidCastException","StackTrace":"在System.ComponentModel.DataAnnotations.MaxLengthAttribute.IsValid(对象值)''r''nSystem.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(对象值,ValidationContext ValidationContext)''r''nSystem.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(对象值,ValidationContext ValidationContext)''r''nSystem.Web.Http.Validation.Validators.DataAnnotationsModelValidator.Valide(ModelMetadata元数据,对象容器)''r''nSystem.Web.Http.Validation.DefaultBodyModelValidator.ShallowValidate(ModelMetadata元数据,ValidationContext ValidationContext,对象容器)''r''n
在System.Web.Http.Validation.DefaultBodyModelValidator.ValideNodeAndChildren(ModelMetadata元数据,ValidationContext ValidationContext,对象容器)''r''n
在System.Web.Http.Validation.DefaultBodyModelValidator.ValideProperties(ModelMetadata元数据,ValidationContext ValidationContext)''r''nSystem.Web.Http.Validation.DefaultBodyModelValidator.ValideNodeAndChildren(ModelMetadata元数据,ValidationContext ValidationContext,对象容器)''r''n
在System.Web.Http.Validation.DefaultBodyModelValidator.Valide(对象model,Type Type,ModelMetadataProvider元数据提供程序,HttpActionContext actionContext,String keyPrefix)''r''n位于System.Web.Http.ModelBinding.FormatterParameterBinding。<>c_DisplayClass1.b_0(对象型号)''r''nSystem.Threading.Tasks.TaskHelpersExtensions。<>c_DisplayClass36 1.<>c__DisplayClass38.<Then>b__35()'r'n at System.Threading.Tasks.TaskHelpersExtensions.<>c__DisplayClass49.<ToAsyncVoidTask>b__48()'r'n at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func 1func,CancellationToken CancellationToken)"}

我可以不使用带小数的MaxLength吗?

MaxLength + Asp.net Web API - Errors out

如果您查看Microsoft文档,您将看到以下关于MaxLenght属性的描述。

指定中允许的数组或字符串数据的最大长度所有物

我会尝试范围属性。