Web APIを使用してAPIを構築していますが、投稿された値を受け取ってモデルにバインドすると、場違いのように見えるエラーが発生します。
私は以下のような単純なモデルを持っています:
public class Client
{
[ScaffoldColumn(false)]
[JsonIgnore]
public int ClientID { get; set; }
[Required, StringLength(75)]
public string Name { get; set; }
[Required]
public bool Active { get; set; }
}
このモデルをコントローラーのpostメソッドに送信する場合
public object Post([FromBody]Client postedClient)
x-www-form-urlencodedフォーマッターを通過しますが、次のようにスローされます。
Property 'Active' on type 'CreditSearch.Api.Models.Rest.Client' is invalid. Value-typed properties marked as [Required] must also be marked with [DataMember(IsRequired=true)] to be recognized as required. Consider attributing the declaring type with [DataContract] and the property with [DataMember(IsRequired=true)].
同じデータをjson形式で送信しようとしましたが、同じ結果が得られます。コードを機能させるためだけにこれらの属性を追加しようとしましたが、Resharperと私は正しい参照を見つけることができません。それでも、プレーンMVCシステムで検証するときに、これまで必要とされていなかったこの余分な属性を追加したくありません。
- これらの属性は本当に必要ですか?以前は必要ありませんでした。
- もしそうなら、どのような参照を追加する必要がありますか?