4
我有處理ASP.NET Web API默默地失敗反序列化(5.1.2版本)中的問題。我想反序列化來提出一個錯誤,但我無法找到它的配置。如何失敗的ASP.NET Web API反序列化時,類型不匹配
我的具體(簡化的)的情況下是這樣的。客戶端應用程序(AngularJS)將HTTP POST請求發送到ASP.NET Web API後端。作爲有效載荷有一串字符串:
["ABC100", "ABC200", "ABC300"]
但是,服務器期待整數列表:
List<int> Ids { get; set; }
什麼最終發生的是,反序列化失敗,則IDS列表將是空的並且沒有錯誤。
Ids: []
當然不匹配需要被固定爲好,但它似乎明顯,我認爲POST請求應該在這種情況下失敗。我怎樣才能使它成爲默認值?
的JavaScript總是會返回一個'array',它不明白'名單'。 List是一個'C#'的東西。你期待'int',而客戶發送的值不是。 –
在您的API方法中,您可以對數據執行任何類型的檢查(儘管這發生在反序列化之後)並手動返回HTTP 500:http://www.asp.net/web-api/overview/錯誤處理/異常處理 –
@modal_dialog當然,我可以對Ids列表進行檢查,但它是空的非常有效。只是在客戶端發送數據但不匹配的情況下。 – merrr