我有一個(gè)復(fù)雜的JSON對(duì)象,該對(duì)象沒有任何問題即可發(fā)送到視圖(如下所示),但是當(dāng)通過AJAX調(diào)用將數(shù)據(jù)序列化回.NET對(duì)象時(shí),我無法弄清楚如何將該數(shù)據(jù)序列化回.NET對(duì)象。各個(gè)部分的詳細(xì)信息如下。 var ObjectA = { "Name": 1, "Starting": new Date(1221644506800), "Timeline": [ { "StartTime": new Date(1221644506800), "GoesFor": 200 } , { "StartTime": new Date(1221644506800), "GoesFor": 100 } ] };我不確定如何將該對(duì)象傳遞給Controller方法,下面有此方法,其中,Timelines對(duì)象使用Properties鏡像上述JS對(duì)象。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(); } });我已經(jīng)看到了類似的問題,但是與我沒有使用表單來操縱數(shù)據(jù)的問題并不完全相同。 如何使用JSON將復(fù)雜類型傳遞給ASP.NET MVC控制器我還看到了使用'JsonFilter'手動(dòng)反序列化JSON的參考,但是我想知道是否有一種方法可以通過ASP.NET MVC來實(shí)現(xiàn)。或以這種方式傳遞數(shù)據(jù)的最佳實(shí)踐是什么?
3 回答

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