2014-05-09 3 views
3
나는이 (가) WebApiConfig.cs 파일에 다음 한

를 작동하지 그것은 내 컨트롤러의 상단 선이MVC WebApi CamelCasingPropertyNames는 BadRequest

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

다음은 있습니다

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

좋은 요청을 작동 내 모델이 컨트롤러에 전달됨

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

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

내 모델을 직렬화 할 때 클라이언트 사용자 이름 및 이메일로 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는 낙타가 제대로 맡았다 것으로 보인다 및 요청이 제대로 수행 결과 객체의 badrequest에 대한 modelState의 단 속성을 성공하면 할 오른쪽 camelcased 것 같습니다. modelState.model.email은 전자 메일의 경우 'E'를 좀 더 낮게 이해해야합니다. 나는 Config 설정이 이것을 처리했다고 생각했지만 그렇지 않습니다. 누구나 모델 스테이트가 직렬화되었을 때 올바르게 camelcased되지 않은 이유는 무엇입니까?

답변