これはWebAPIの既知の問題であり、履歴全体をここで確認できます:http:
//aspnetwebstack.codeplex.com/workitem/270
基本的に、[必須]を値型(boolやintなど、文字列は値型ではありません)に適用すると、このエラーが発生します。
また、それについて考える必要がありint
ます-必須のプロパティを作成しています-しかし、値型として、ユーザーによって渡されなくても、常に値、value=0を持ちます。おそらくあなたはint?
代わりに考えていましたか?
完全に削除することもできInvalidModelValidatorProvider
ます(ただし、受け入れられない場合があります)。
config.Services.RemoveAll(
typeof(System.Web.Http.Validation.ModelValidatorProvider),
v => v is InvalidModelValidatorProvider);
または、DataContractをクラスに適用します。
[DataContract]
public class MyClass {
[DataMember(isRequired=true)]
public string AccountTypeID { get; set; }
[DataMember(isRequired=true)]
public int CallerID { get; set; }
}
もう1つの回避策として、intをnull許容としてマークします。
[Required]
public int? CallerID { get; set; }