JQuery Ajax, почему в случае успеха у меня есть ошибка, почему?
Почему в успехе у меня ошибка?
$('#ck').click(function() {
var StudentData = [{
'Name': 'Ali',
'Age': 27
}, {
'Name': 'Sam',
'Age': 32
}];
$.ajax({
url: "/Home/StudentInfo",
data: JSON.stringify(StudentData),
...
success: function(response) {
alert(response[0].Name);
},
error: function() {
alert("error");
},
});
});
1 ответ
Основываясь на чрезмерно длинном потоке комментариев выше, вы утверждаете, что имеете этот серверный код:
public JsonResult StudentInfo(List<object> StudentData)
{
return Json(StudentData);
}
Итак, вы возвращаете List<object>
к вашему клиентскому коду. Затем в своем клиентском коде вы пытаетесь получить доступ к свойству элемента в этом списке:
success: function (response) {
alert(response[0].Name);
}
Ну, проще говоря, object
не содержит свойство под названием Name
, Этого никогда не было, и, вероятно, никогда не будет. Таким образом, вы не можете получить доступ к свойству, которое не существует. Следовательно, это undefined
в JavaScript.
Похоже, вы хотели определить класс для ваших объектов. Что-то простое, как это:
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
Затем вы можете использовать этот класс в вашем методе действия:
public JsonResult StudentInfo(List<Student> StudentData)
{
return Json(StudentData);
}
поскольку Student
действительно есть свойство под названием Name
Вы можете использовать это свойство в своем коде на стороне клиента.