2012-10-05 96 views
0

我在這裏有一個愚蠢的問題。我正在用ASP .NET MVC 4,EF5和Ext JS(Sencha)開發Web應用程序。自定義Json.NET序列化將空字符串視爲空

事情是,通過設計(我不知道爲什麼),Ext JS在做Ajax請求時將js對象用空值轉換爲空字符串。

我只是爲了簡化這個例子。

所以,如果我在JavaScript中

icon_id : null 

變量時,我得到了JObject服務器端就變成

icon_id : "" 

當我通過icon_id爲對於該請求的參數。所以當我寫icon_id.ToObject<MyNETIconIDClass>()我得到一個異常,告訴我它不能從字符串轉換爲可空int。這是可以理解的。

我可能會誤解這背後的邏輯,但既然我不想搞亂Ext JS源代碼,有什麼辦法可以告訴Json.NET反序列化器把空字符串視爲null嗎?

據我所見,使用轉換器會很麻煩,因爲我必須更改模型中每個類的每個可爲null的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正在發送GET請求,而不是POST。

相關問題