MaxLength + Asp.net Web API - 错误

cho*_*bo2 2 c# data-annotations asp.net-web-api

我的 PriceDM 类中有这个属性。

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


   public void AddPrice([FromBody]PriceDM vm)
        {
}
Run Code Online (Sandbox Code Playgroud)

虽然我一直收到这个错误

{"Message":"发生错误。","ExceptionMessage":"无法将'System.Decimal'类型的对象转换为'System.Array'类型。","ExceptionType":"System.InvalidCastException"," StackTrace":" 在 System.ComponentModel.DataAnnotations.MaxLengthAttribute.IsValid(Object value)\r\n 在 System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext)\r\n 在 System.ComponentModel.DataAnnotations。 ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext)\r\n 在 System.Web.Http.Validation.Validators.DataAnnotationsModelValidator.Validate(ModelMetadata metadata, Object container)\r\n 在 System.Web.Http.Validation.DefaultBodyModelValidator。ShallowValidate(ModelMetadata 元数据、ValidationContext validationContext、对象容器)\r\n
在 System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata, ValidationContext validationContext, Object container)\r\n
在 System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata metadata, ValidationContext validationContext)\r\n 在System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata, ValidationContext validationContext, Object container)\r\n
at System.Web.Http.Validation.DefaultBodyModelValidator.Validate(Object model, Type type, ModelMetadataProvider metadataProvider, HttpActionContext actionContext,串keyPrefix个)\ r \ n在System.Web.Http.ModelBinding.FormatterParameterBinding。<> C_ DisplayClass1.b_0(对象模型)\r\n 在 System.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](Func1 func, CancellationToken cancelationToken )"}

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

noz*_*ari 5

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

指定属性中允许的数组或字符串数​​据的最大长度。

我会尝试Range 属性