2013-10-18 50 views
1

我似乎無法在Google上找到與此問題相關的任何內容。
請幫忙!!WebAPI驗證DataAnnotation創建運行時異常[HttpStatusCode 500]

情景:
主要我有一個期望的簡單類型作爲參數的控制器方法的的WebAPI服務器。
這個API看起來是這樣的:

public HttpResponseMessage Foo([FromBody] LoginModel form) 
{ 
    // ...some code 
    return this.Request.CreateResponse(HttpStatusCode.OK); 
} 

和LoginType類看起來是這樣的:當客戶端試圖運行的API方法時發生

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; 
} 

問題。我通過一個JSON看起來像這樣
{ 「電子郵件」: 「[email protected]」, 「密碼」: 「OOOOOO」}

....我得到下面的異常

EXCEPTION MESSAGE:。
「場‘電子郵件’在類型‘XXXX.Models.Login’是由於一個或多個屬性驗證字段上不支持驗證屬性,可以考慮使用公共財產的確認,而不是

的當我從Fiddler運行api調用時也會發生同樣的情況!!

注意:
如果我刪除像[必需的]各種屬性,它工作順利。當屬性到位時,客戶端調用永遠不會進入方法。

幫助真正感激!

回答

2

像它說:

驗證上的字段屬性不被支持。考慮使用公共屬性進行驗證。

所以使用屬性;

public string Email { get; set; } 
+0

天哪......這是一個容易的! –

+0

容易錯過,有時只需要另一雙眼睛! – weston