2017-04-12 12 views
0

私はバックエンドのコードここ 表示データは

[HttpGet] 
    public ActionResult EmailsList() 
    { 
     var itemsEmail = db.InvitationMails 
      .Select(x=> new 
      { 
       Email = x.To.ToString(), 
       Name = x.Name.ToString(), 
      }) 
      .ToList(); 
     return Json(itemsEmail, JsonRequestBehavior.AllowGet); 
    } 

があるAJAX呼び出し

あるバックエンドのためにデータ

ここ

を取得するために、AJAX呼び出しを持っています

<script> 
$('#save_quest').click(function() { 
    email_update(); 
}); 

function email_update() { 
    $.ajax({ 
     url: '@Url.Action("EmailsList", "Questions")', 
     contentType: 'application/json; charset=utf-8', 
     type: 'GET', 
     dataType: 'json', 
     processData: false, 
     success: function (result) { 

      console.log(result); 
      console.log(result.EmailsList); 
     } 
    }); 
} 

それはうまく動作します。

しかし、私はこのconsole.log(result.EmailsList.Email);

のように、この行console.log(result.EmailsList);を書く場合、私は私は1つのパラメータを取得できますか

ncaught TypeError: Cannot read property 'Email' of undefined

このエラーが出るのだろうか?

for (var i = 0; i < result.EmailsList.length; i++) { 
      //to get email use this 
      result.EmailsList[i].Email; 
     } 

あなただけの最初の電子メールを取得したい場合、あなたはこのようにそれを行うことができます:

result.EmailsList[0].Email 
+0

を試してみてください - あなたは配列をループする必要をし、プロパティを取得値がすでに 'string'のときは' .ToString() 'を使う必要はありません)。無意味な 'contentType'と' processData'オプションを削除することもできます –

+0

結果はコレクションです。データを取得するにはそのコレクションをチェックする必要があります –

答えて

0

変数は既にリストされているので、使用するだけです。result[0].Email

function email_update() { 
    $.ajax({ 
     url: '@Url.Action("EmailsList", "Questions")', 
     contentType: 'application/json; charset=utf-8', 
     type: 'GET', 
     dataType: 'json', 
     processData: false, 
     success: function (result) { 
      console.log(result[0].Email); 
      console.log(result[0].Name); 
     } 
    }); 
} 
+0

'長さ'が未定義のプロパティーを読み取ることができません – Eugene

0

あなたresult EmailsListは、あなたがこのようにそれをループに必要なリストであるよう

+0

'JSONの位置1で予期しないトークンo' – Eugene

0

コードをこれに変更してください。リストのプロパティに直接アクセスすることはできません。アクセスするにはインデックスを変更する必要があります。

console.log(result.EmailsList[0].Email); 
0

あなた `result`は、コレクション内の各項目は、プロパティ` Email`と `name`の含まれているオブジェクトのコレクションです

$.each(result.EmailsList, function (item, i) { 
    alert(item.Email); 
})