2016-05-16 20 views
0

コントローラのアクションをAJAX呼び出しを使用して、アクションによって返されるオブジェクトリスト成功しました。データフィールドにはajaxによって返されたすべてのオブジェクトの配列が含まれていますが、テストのために各項目のキーを警告したいときは、一度だけ未定義と警告します.. ブラウザでデバッグすると、スナップショットenter image description hereは、MVCのビューで

01あなたは、コントローラからjson_encodeを送信する必要があり、これを達成するための別の方法があり、ちょうどその

$.each(data.data, function (key, val) { 
    alert(key); 
}); 

のようにコールする必要がありますので、あなたの応答データに

+0

これは '$ .each(data.data、function(key、val){'である必要がありますが、コントローラメソッドを 'return Json(criteriaList 、JsonRequestBehavior.AllowGet); ' –

+0

うん、うまくいきました。たくさんありがとう! –

答えて

0

はオブジェクトです。あなたがdataプロパティを持つ新しいJSONオブジェクトを作成Json(new { data = criteriaList });によって

$.ajax({ 
    type: 'GET', 
    url: ServiceUrl, 
    contentType: "application/json; charset=utf-8", 
    error: function (xhr, err) { 
     alert(xhr.responseText) 
    }, 
    success: function (data) 
    { 
     debugger; 
     $.each(data.data, function (key, val) { 
      alert(key); 
     }); 
    } 
}); 

1

はこれを試してみてください。だから、もしそれにアクセスしたいのであれば、.datadata.dataを追加するか、jsonのプロパティ名を変更して読みやすくしてください。

+0

はいデータはデータ項目に返されますので、data.dataを使用する必要があります –