2017-09-18 3 views
0

저는 ASP.NET Core를 사용 중이므로 jQuery와 함께 post를 사용하려고합니다. I 발생할 상황이 같았다 :jQuery를 사용하여 게시 할 때 잘못된 맞춤법이 포함 된 JSON 모델이 수신되었습니다.

나는이 모델

public class Model { 
    int INT_VALUE { get; set; } 
    string STR_VALUE { get; set; } 
    int SOME { get; set; } 
} 

지금

[HttpPost] 
public Model GetValues(string val) { 
    Model m = new Model { INT_VALUE = 1, STR_VALUE = "hi", SOME = "there" }; 
    return m; 
} 

내가 jQuery를

$.post('api/GetValues', { val: "abc" }) 
    .done(function (data) { 
     console.log(data) 
     if (data.INT_VALUE === 1) { 
      console.log("Hit!"); 
     } 
    }); 

은 Using 게시물 요청과 같은 API 요점은 내가 INT_VALUE === 1 로그가있는 모델을 얻는 경우입니다 '히트!' 하지만 작동하지 않았습니다.

그래서, 다음 수신 JSON 값을 확인 내가 기대했던

{"inT_VALUE":1,"stR_VALUE":"hi","some":"there"} 

같은 잘못된 맞춤법 이상한 값을 발견 (console.log("Hit!")에 도착하지 않은 것은)

{"INT_VALUE":1,"STR_VALUE":"hi","SOME":"there"} 

또는

입니다
{"int_value":1,"str_value":"hi","some":"there"} 

내가 예상 할 수있는 맞춤법을 바꿀 수있는 방법이 있습니까?

답변

1

모델의 속성 (예 : IntValue, StrValue ...)에 PascalCase를 사용하도록 변경할 수 있다고 생각합니다. 그런 다음 Json Serializer가 설정을 따라 PascalCase를 사용하도록 할 수 있습니다. 당신의 Startup.cs 파일에서

은 모델 (있는 intValue strValue의에 정의 된 다음 클라이언트 측에서, 같은 이름을 사용하여 속성에 액세스 할 수 귀하의 ConfigureServices 방법을 찾아이

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc() 
     .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver()); 
} 

처럼 업데이트합니다. ..).

+0

해결! 고맙습니다 :) – wallah

관련 문제