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_DisplayClass361.<>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吗?
如果您查看Microsoft文档,您将看到以下关于MaxLenght属性的描述。
指定中允许的数组或字符串数据的最大长度所有物
我会尝试范围属性。