モデルの検証に関する rtm ビットで何かが変更されました。
次のような単純なビューモデルがあります
public class ProductViewModel
{
[Required]
[DataMember(IsRequired = true)]
public int ProductTypeId { get; set; }
public string Product { get; set; }
}
(DataMember(IsRequired = true)を追加したところ、問題を解決するために使用するように指示されたエラーメッセージが表示されましたが、喜びはありません)
私のコントローラー内では、モデルの状態はモデルが有効であることを示していますが、RestSharp を使用してモデルを API に渡そうとすると、次のエラーが発生します。
{"メッセージ":"エラーが発生しました。","ExceptionMessage":"タイプ 'Mine.Model.Model' のプロパティ 'ProductTypeId' が無効です。[必須] とマークされている値型のプロパティも [DataMember] でマークする必要があります。 (IsRequired=true)] が必須として認識されるようにするには、[DataContract] で宣言型を、[DataMember(IsRequired=true)] でプロパティを属性付けすることを検討してください。","ExceptionType":"System.InvalidOperationException","StackTrace": " System.Web.Http.Validation.Validators.ErrorModelValidator.Validate(ModelMetadata メタデータ、オブジェクト コンテナー) で\r\n System.Web.Http.Validation.DefaultBodyModelValidator.ShallowValidate(ModelMetadata メタデータ、ValidationContext validationContext、オブジェクト コンテナー) で\r \n System.Web.Http.Validation.DefaultBodyModelValidator で。ValidateNodeAndChildren(ModelMetadata メタデータ、ValidationContext validationContext、オブジェクト コンテナー)\r\n System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata メタデータ、ValidationContext validationContext) で\r\n System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren で(ModelMetadata メタデータ、ValidationContext validationContext、オブジェクト コンテナー) \r\n System.Web.Http.Validation.DefaultBodyModelValidator.Validate で (オブジェクト モデル、型タイプ、ModelMetadataProvider metadataProvider、HttpActionContext actionContext、String keyPrefix)\r\n System.Web で.Http.ModelBinding.FormatterParameterBinding.<>c_ValidateProperties(ModelMetadata メタデータ、ValidationContext validationContext)\r\n System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren で (ModelMetadata メタデータ、ValidationContext validationContext、オブジェクト コンテナー)\r\n System.Web.Http.Validation.DefaultBodyModelValidator.Validate で(オブジェクト モデル、タイプ タイプ、ModelMetadataProvider metadataProvider、HttpActionContext actionContext、String keyPrefix) \r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.<>c_ValidateProperties(ModelMetadata メタデータ、ValidationContext validationContext)\r\n System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren で (ModelMetadata メタデータ、ValidationContext validationContext、オブジェクト コンテナー)\r\n System.Web.Http.Validation.DefaultBodyModelValidator.Validate で(オブジェクト モデル、タイプ タイプ、ModelMetadataProvider metadataProvider、HttpActionContext actionContext、String keyPrefix) \r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.<>c_HttpActionContext actionContext, String keyPrefix)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.<>c_HttpActionContext actionContext, String keyPrefix)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.<>c_DisplayClass1.b _0(オブジェクト モデル)\r\n at 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](Func
1 func, CancellationToken cancelToken)"}
私はrcビットでこの問題を抱えていませんでしたが、rtmビットでrestsharpライブラリを使い始めたばかりです。
どんな助けでも素晴らしいでしょう。