Google でこの問題に関連するものを見つけることができないようです。
助けてください !!
シナリオ:
主に、単純な型をパラメーターとして期待するコントローラー メソッドを備えた WebAPI サーバーを使用しています。
その API は次のようになります。
public HttpResponseMessage Foo([FromBody] LoginModel form)
{
// ...some code
return this.Request.CreateResponse(HttpStatusCode.OK);
}
LoginType クラスは次のようになります。
public class LoginModel
{
[Required]
[EmailAddress(ErrorMessage = "Please have a Email address format")]
public string Email;
[Required]
[StringLength(20, MinimumLength = 6, ErrorMessage = "Password must be between 6 and 20 characters")]
public string Password;
}
クライアントが API メソッドを実行しようとすると、問題が発生します。次のような json を渡します
{ "Email" : "xxx@xxx.com" , "Password" : "oooooo" }
....次の例外が発生します
例外メッセージ:
「タイプ 'XXXX.Models.Login' のフィールド 'Email' には、1 つ以上の検証属性が関連付けられています。フィールドの検証属性はサポートされていません。代わりに、検証にパブリック プロパティを使用することを検討してください。
Fiddler から API 呼び出しを実行したときにも同じことが起こります!!
注:
[必須] などのさまざまな属性を削除すると、スムーズに動作します。属性が配置されている場合、クライアント呼び出しはメソッドに到達しません。
助けていただければ幸いです!!!