2014-05-09 33 views
3

在WebApiConfig.cs文件我有以下的和它的作品好要求MVC的WebAPI CamelCasingPropertyNames不工作的錯誤請求

var jsonFormatter = config.Formatters.JsonFormatter; 
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 

在我的控制器頂部線條

public async Task<IHttpActionResult> ForgotPassword(ForgotPasswordBindingModel model) 
{ 
    if (!ModelState.IsValid) 
    { 
     return BadRequest(ModelState); 
    } 
} 

以下是我的模型被傳入控制器

public class ForgotPasswordBindingModel 
{ 
    [Required] 
    [Display(Name = "User name")] 
    public string UserName { get; set; } 

    [EmailAddress] 
    [Display(Name = "Email")] 
    public string Email { get; set; } 
} 

當我的模型被序列化bac K將客戶端用戶名和電子郵件沒有正確駝峯格式

Object {message: "The request is invalid.", modelState: Object} 
message: "The request is invalid." 
modelState: Object 
model.Email: Array[1] 
0: "The Email field is not a valid e-mail address." 

對象本身ModelState似乎駱駝正確套管,當請求成功生成的對象做得好,但對於錯誤請求中的ModelState中的性能做似乎沒有被正確對待。 modelState.model.email應該有我的理解一個較低的「E」電子郵件。我認爲配置設置照顧了這一點,但事實並非如此。任何人有任何想法,爲什麼模型狀態是不正確camelcased時,它被序列化回來?

回答