0

重複の可能性:
JSON 経由でオブジェクトの配列を ASP.Net MVC3 に投稿する

JSON オブジェクトを MVC3 コントローラーに投稿しようとしています。これに対する解決策は stackoverflow で見ましたが、ほとんどの解決策は、JSON オブジェクトがモデルにバインドされる場所です。ポスト JSON オブジェクト (配列) がジェネリック c# オブジェクト型の配列に変換されるようにするにはどうすればよいですか? または、json オブジェクトをループできるようにするもの。オブジェクトは決して同じではないことに注意してください。私は基本的に、json オブジェクトをループしてそこからデータを取得できるようにする 1 つのコントローラーを作成したいと考えています。現在、MVCコントローラーでオブジェクトの配列を取得していますが、それらのデータを表示できないようです。何か案は?

正しい道を進んでいるかどうかはわかりません。

ありがとう、テッシュ

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 オブジェクト。オブジェクトはいつでもできます。

{

"Table": [ { "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 に変換する

HTH

于 2012-10-16T06:58:59.803 に答える