0

可能重复:
通过 JSON 将对象数组发布到 ASP.Net 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”:John,“last_name”:Doe,“creation_date”:“2012-10-04T15:50:37.55”,“created_by”:Mary Jane,“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
}

] }

4

1 回答 1

1

无论如何,默认情况下对象的属性很少,因此 JSON 绑定器不会将任何内容绑定到它们。

如果您有想要循环和获取的公共属性,请将它们声明为 ViewModel,然后将其设置为列表对象中的参数。

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

然后你可以使用

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

如果你真的需要将它绑定到一个对象,你可以试试这个链接:

将 JSON 转换为 ExpandoObject

高温高压

于 2012-10-16T06:58:59.803 回答