2012-10-05 3 views
0

여기에 바보 같은 문제가 있습니다. ASP .NET MVC 4, EF5 및 Ext JS (Sencha)를 사용하여 웹 응용 프로그램을 개발하고 있습니다.빈 문자열을 null로 간주하도록 Json.NET 직렬화를 사용자 정의하십시오.

아약스 요청을 할 때 Ext JS는 null 값을 가진 js 객체를 빈 문자열로 변환합니다.

나는 그저 단순함을 위해 예제를 단순화 할 것이다. 내가 도착하면 내가

icon_id : null 

자바 스크립트

에서 변수가 있다면 내가 요청에 대한 매개 변수로 icon_id을 통과 할 때

는 그래서하는 jobject 서버 측이

icon_id : "" 

된다. 그래서 icon_id.ToObject<MyNETIconIDClass>()을 쓸 때 문자열에서 nullable int로 변환 할 수 없다는 예외가 생깁니다. 어느 것이 이해할 수 있습니다.

이 논리를 오해 할 수도 있지만 Ext JS 소스 코드를 사용하고 싶지 않으므로 Json.NET deserializer에 빈 문자열을 null로 간주 할 수있는 방법이 있습니까?

그리고 지금까지 보았 듯이 변환기를 사용하는 것은 내 모델의 모든 클래스에서 모든 nullable int 속성을 변경해야만이 작업을 올바르게 수행 할 수 있기 때문에 골칫거리가 될 수 있습니다.

+0

어떻게 서버에 전달합니까? Ext는 그 문자열을 빈 문자열로 변환하지 않습니다. –

+0

다음 링크를 확인하십시오 : http://www.sencha.com/forum/showthread.php?113391-Ajax-request-is-converting-params-with-null-values-to-empty-strings&s=8531c7a1525c9a044571d6972b51b12f. 이것은 나에게 일어나는 일인 것 같다. 나는'params'에 널 값을 허용하는 int를 넘겨 주려고합니다. 그리고 값이 null이 될 때 나는 비 직렬화하려고 할 때 예외를 얻습니다. –

+1

그래서 요청을 받았습니까? 이 경우 Ext는 아무 것도하지 않습니다. null과 ''의 차이를 나타낼 실제 방법은 없습니다. –

답변

0

의견에 따라 OP는 POST가 아닌 GET 요청을 보냈습니다.

관련 문제