Javascript 显示AJAX调用视图中的数据(ASP.NET MVC)
我对后端进行了AJAX调用以获取数据 这是后端代码Javascript 显示AJAX调用视图中的数据(ASP.NET MVC),javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我对后端进行了AJAX调用以获取数据 这是后端代码 [HttpGet] public ActionResult EmailsList() { var itemsEmail = db.InvitationMails .Select(x=> new { Email = x.To.ToString(), Name = x.Name.ToString(),
[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) {
console.log(result);
console.log(result.EmailsList);
}
});
}
$(“#保存任务”)。单击(函数(){
电子邮件_update();
});
函数email_update(){
$.ajax({
url:'@url.Action(“EmailsList”,“Questions”),
contentType:'application/json;charset=utf-8',
键入:“GET”,
数据类型:“json”,
processData:false,
成功:功能(结果){
控制台日志(结果);
console.log(result.EmailsList);
}
});
}
它工作得很好
但是如果我写这一行console.log(result.EmailsList)代码>如下console.log(result.EmailsList.Email)代码>
我会得到这个错误
ncaught TypeError:无法读取未定义的属性“Email”
如何获取一个参数?因为EmailsList是一个列表,您需要这样循环:
for (var i = 0; i < result.EmailsList.length; i++) {
//to get email use this
result.EmailsList[i].Email;
}
您的结果
变量已在列表中。。所以你只需要使用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);
}
});
}
请将您的代码更改为此。您不能直接访问列表的属性,必须更改索引才能访问它
console.log(result.EmailsList[0].Email);
试一试
您的结果
是一个对象集合,其中集合中的每个项都包含属性电子邮件
和名称
-您需要循环遍历数组并获取每个项的属性(当值已经是字符串时,您不需要使用.ToString()
)。您还可以删除无意义的contentType
和processData
选项result is collection,您需要检查该集合以获取位置1处JSON中的数据意外标记o
console.log(result.EmailsList[0].Email);
$.each( result.EmailsList, function (item, i) {
alert(item.Email);
})