Div*_*Dan 5 validation restsharp asp.net-mvc-4
关于模型验证的rtm位有什么变化.
我有一个简单的viewmodel看起来像
public class ProductViewModel
{
[Required]
[DataMember(IsRequired = true)]
public int ProductTypeId { get; set; }
public string Product { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
(我刚刚添加了DataMember(IsRequired = true)作为我得到的错误消息,用它来解决问题.但是没有快乐)
在我的控制器中,模型状态告诉我模型是有效的,但是当我尝试使用RestSharp将模型传递给我的api时,我得到以下错误.
{"消息":"发生了错误.","ExceptionMessage":"Mine.Model.Model"类型的"属性'ProductTypeId'无效.标记为[必需]的值类型属性也必须用[DataMember]标记(IsRequired = true)]被识别为必需.考虑将声明类型与[DataContract]和属性[DataMember(IsRequired = true)].","ExceptionType":"System.InvalidOperationException","StackTrace": "at System.Web.Http.Validation.Validators.ErrorModelValidator.Validate(ModelMetadata metadata,Object container)\ r \n在System.Web.Http.Validation.DefaultBodyModelValidator.ShallowValidate(ModelMetadata metadata,ValidationContext validationContext,Object container)\ r \n \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 \n在System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata,ValidationContext validationContext,Object container)\ r \n在System.Web.Http.Validation.DefaultBodyModelValidator.Validate(对象模型,Type类型,ModelMetadataProvider metadataProvider, HttpActionContext actionContext,String 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 cancellationToken)"}
我没有使用rc位这个问题,但后来我才开始使用带有rtm位的restsharp库.
任何帮助都会很棒.
除了将 [DataMember(IsRequired = true)] 添加到属性之外,您还需要确保在类级别应用属性 [DataContract]。
| 归档时间: |
|
| 查看次数: |
1010 次 |
| 最近记录: |