ValidationDataContract和DataMember是必需的我正在使用webapi构建API,当接收发布的值并将它们绑定到我的模型时,我遇到了似乎不合适的错误。我有一个简单的模型如下:publicclassClient{[ScaffoldColumn(false)][JsonIgnore]publicintClientID{get;放;}[Required,StringLength(75)]publicstringName{get;放;}[必需]publicboolActive{get;放;将此模型发送到我的控制器公共对象Post([FromBody]ClientpostedClient)上的post方法时,它会传递x-www-form-urlencoded格式化程序,但会抛出Out:Property'Active'ontype'CreditSearch.Api。Models.Rest.Client'无效。标记为[Required]的值类型属性也必须标记为[DataMember(IsRequired=true)]才能被识别为必需的。考虑使用[DataContract]分配声明类型,使用[DataMember(IsRequired=true)]分配属性。我也试过它以json格式发送相同的数据,但我得到了相同的结果。我试图添加这些属性只是为了让代码正常工作,但Resharper和我自己找不到正确的引用。即便如此,我还是不愿意在正常的MVC系统中进行验证之前不需要添加这些冗余属性。我真的需要这些属性吗?以前不需要它们。如果是这样,我需要添加哪些参考资料?进行此验证的原因是因为对于引用类型成员,每当成员被反序列化时,WebAPI都可以检查成员是否不为空。对于值类型,没有空值,因此由格式化程序检查请求文字中是否存在该值。不幸的是,我们的XML格式化程序不支持[Required]属性,因此如果缺少成员,它不会引发模型状态错误。如果不为某些格式化程序的缺失值类型成员引发模型状态错误,则可以使用此行来删除验证:需要了解更多有关C#的学习教程,希望您多加关注—config.Services.RemoveAll(typeof(ModelValidatorProvider),(provider)=>providerisInvalidModelValidatorProvider);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
