私はバックエンドのコードここ 表示データは
[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
を試してみてください - あなたは配列をループする必要をし、プロパティを取得値がすでに 'string'のときは' .ToString() 'を使う必要はありません)。無意味な 'contentType'と' processData'オプションを削除することもできます –
結果はコレクションです。データを取得するにはそのコレクションをチェックする必要があります –