从AJAX(ASP.NET MVC)正确显示数据

时间:2017-04-12 12:01:36

标签: jquery asp.net ajax asp.net-mvc

我在后端控制器上有这个代码

 [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的呼叫代码

<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) {
            var email = result;
           // console.log(result[0].Name);
            for (var i = 0; i <= email.length - 1; i++){
                var emailHTML = '<div style="margin-left: 25px; margin-top: 10px;>' + '<b style="margin-left: 10px;">' + result.Email + '<b>' + '<b style="margin-left: 20px;">' + result.Name + '</b>' + '</div>'
                $(".email_list").append(emailHTML);
            }
        }
    });
}

代码效果很好,但我在View上有undefined

enter image description here

我如何编辑代码才能正确显示?

1 个答案:

答案 0 :(得分:2)

如果他/她得到同样的问题,我写这篇文章是为了帮助别人,

因为它是一个对象数组,所以你需要在for循环中添加[i]和你的结果。

for (var i = 0; i <= email.length - 1; i++)
  {
   var emailHTML = '<div style="margin-left: 25px; margin-top: 10px;>' + '<b style="margin-left: 10px;">' + result[i].Email + '<b>' + '<b style="margin-left: 20px;">' + result[i].Name + '</b>' + '</div>'
   $(".email_list").append(emailHTML);
  }

干杯:)