2012-10-15 31 views
0

可能重複:
Post an Array of Objects via JSON to ASP.Net MVC3發佈JSON對象(數組)MVC3控制器

我試圖JSON對象發佈到MVC3控制器。我在stackoverflow中看到了這個解決方案,但是大多數解決方案都是將JSON對象綁定到模型的地方。我如何使後JSON對象(數組)被轉換爲一個通用的C#對象類型的數組?或者是讓我循環瀏覽json對象的東西。請記住,對象絕不相同。我基本上想創建一個控制器,它允許我循環json對象並從那裏獲取數據。目前,我在MVC控制器中獲取了一組對象,但是我似乎無法看到它們中的數據。有任何想法嗎?

不知道我是否要走正確的道路。

謝謝 -Tesh

的Javascript:

var parm = JSON.stringify({ session_id: sessionId, data: data, metaData: metaData }) 

    var ret = ""; 
    $.ajax({ 
     type: 'post', 
     cache: false, 
     url: path + "/Common/Export/Load", 
     data: parm, 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     traditional: true, 
     async: false, 
     success: function (data) { 
      //ret = data.Table[0].Column1; 
     }, 
     error: function (event, request, settings) { 
      //alert('save error: ' + JSON.stringify(request)) + ', ' + JSON.stringify(settings); 
     } 
    }); 

MVC控制器

[HttpPost] 
    public ActionResult Load(String session_id, List<object> data, Object metaData) 
    { 




     return View(); 
    } 

JSON對象傳遞給控制器​​。該對象可以在任何時候。

{ 

「表」:[{ 「first_name的」:約翰, 「姓氏」:DOE, 「CREATION_DATE」: 「2012-10-04T15:50:37.55」, 「CREATED_BY」:瑪麗·簡, 「LAST_MODIFIED_DATE」: 「2012-10-04T15:50:37.55」, 「last_modified_by」:喬恩·米切爾

}, 
{ 
    "first_name": Bill, 
    "last_name": Doe, 
    "creation_date": "2012-10-04T15:50:37.55", 
    "created_by": Jane Wick, 
    "last_modified_date": "2012-10-04T15:50:37.55", 
    "last_modified_by": Jon Mitchell 
} 

] }

+1

您正在使用'stringify'從您的AJAX調用中刪除'dataType:'json''和'contentType'字段......並且它應該可以正常工作:) dataType是從服務器返回的數據類型。不是要發送到服務器的數據 – AdityaParab

+0

在我刪除dataType和contentType字段後,我不再獲取數組,並且傳遞給控制器​​的值爲null。 – MindGame

回答

1

默認情況下,對象無論如何都有很少的屬性,所以JSON綁定器不會將任何東西綁定到它們。

如果您有要循環並獲取的公共屬性,請將它們聲明爲ViewModel,然後將其設置爲列表對象中的參數。

public class BaseModel 
{ 
    public DateTime creation_date {get;set;} 
} 

然後可以使用

public ActionResult Load(String session_id, List<BaseModel> data, Object metaData) 
{  
    ... 
} 

如果您真的需要將其綁定到一個對象,你可以嘗試一些像這樣的鏈接:

Turning JSON into a ExpandoObject

HTH

Si

+0

是的,我需要將它綁定到一個對象。所以我會嘗試ExpandoObject。謝謝。 – MindGame

相關問題