我有一個復雜的JSON對象,該對象沒有任何問題即可發送到視圖(如下所示),但是當通過AJAX調用將數據序列化回.NET對象時,我無法弄清楚如何將該數據序列化回.NET對象。各個部分的詳細信息如下。 var ObjectA = { "Name": 1, "Starting": new Date(1221644506800), "Timeline": [ { "StartTime": new Date(1221644506800), "GoesFor": 200 } , { "StartTime": new Date(1221644506800), "GoesFor": 100 } ] };我不確定如何將該對象傳遞給Controller方法,下面有此方法,其中,Timelines對象使用Properties鏡像上述JS對象。public JsonResult Save(Timelines person)我正在使用的jQuery是: var encoded = $.toJSON(SessionSchedule); $.ajax({ url: "/Timeline/Save", type: "POST", dataType: 'json', data: encoded, contentType: "application/json; charset=utf-8", beforeSend: function() { $("#saveStatus").html("Saving").show(); }, success: function(result) { alert(result.Result); $("#saveStatus").html(result.Result).show(); } });我已經看到了類似的問題,但是與我沒有使用表單來操縱數據的問題并不完全相同。 如何使用JSON將復雜類型傳遞給ASP.NET MVC控制器我還看到了使用'JsonFilter'手動反序列化JSON的參考,但是我想知道是否有一種方法可以通過ASP.NET MVC來實現?;蛞赃@種方式傳遞數據的最佳實踐是什么?
3 回答

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
您說“我沒有使用表格來操縱數據?!?但是您正在執行POST。因此,實際上,您正在使用一種表單,即使它為空。
$ .ajax的dataType告訴jQuery服務器將返回什么類型,而不是您要傳遞的類型。POST只能通過表格。jQuery 會將數據轉換為鍵/值對,并將其作為查詢字符串傳遞。從文檔:
數據要發送到服務器。如果還不是字符串,則將其轉換為查詢字符串。它被附加到GET請求的URL上。請參閱processData選項以防止這種自動處理。對象必須是鍵/值對。如果value是一個Array,則jQuery使用相同的鍵序列化多個值,即{foo:[“ bar1”,“ bar2”]}變為'&foo = bar1&foo = bar2'。
因此:
您沒有將JSON傳遞到服務器。您正在將JSON傳遞給jQuery。
模型綁定的發生方式與其他情況下的發生方式相同。
- 3 回答
- 0 關注
- 1196 瀏覽
添加回答
舉報
0/150
提交
取消