2017-11-14 12 views
-7

왜 성공적으로 오류가 있습니까?JQuery Ajax, 왜 성공적으로 오류가 발생합니까?

public JsonResult StudentInfo(List<object> StudentData) 
{ 
    return Json(StudentData); 
} 

그래서, 당신이 List<object>로 클라이언트 측 코드를 반환하고 있습니다 : 너무 긴 코멘트 스레드를 바탕으로

$('#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"); 
    }, 
    }); 
}); 
+2

질문이 엉망입니다. http://www.stackoverflow.com/tour를 살펴보고 질문을 다시 작성하기 전에 시간을 들여보십시오. – Nepho

+2

어떤 오류가 있습니까? 너 무슨 소리 야? 여기서부터 화면을 볼 수 없음을 이해하십시오. * 문제를 설명하십시오. * – David

+0

alert (응답 [0] .Name); // 여기에 오류가 있습니다 ... 어떻게 값을 얻을 수 있습니까 ?? –

답변

0

위, 당신은이 서버 측 코드를 가지고 주장한다. 그런 다음 클라이언트 측 코드에서 해당 목록의 요소에 속성에 액세스하려고 :

success: function (response) { 
    alert(response[0].Name); 
} 

음, 넣어 것은, 단순히 object doesn't contain a property called Name입니다. 그것은 결코 가지고 있지 않으며 아마도 그렇게하지 못할 것입니다. 따라서 이 존재하지 않는 속성에 액세스 할 수 없습니다.. 따라서 JavaScript는 undefined입니다.

그것은 당신이 당신의 객체에 대한 클래스를 정의하는 의미 것 같습니다. 이 같은 간단한 :

public class Student 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

그런 다음 당신은 당신의 행동 방식에 클래스를 사용할 수 있습니다 : 이 속성이 Name을 불렀다 않습니다

public JsonResult StudentInfo(List<Student> StudentData) 
{ 
    return Json(StudentData); 
} 

Student 때문에, 당신은에서 그 속성을 사용할 수 있습니다 귀하의 클라이언트 측 코드.

+0

덕분에 새로운 해요 당신이 너무 많이이 작동하지 **** 일 –

+0

의 공공 JsonResult StudentInfo (목록 StudentData) { 반환 JSON (StudentData); } ****이 작품 공개 JsonResult StudentInfo (목록 학생 데이터) { return Json (학생 데이터); } **** 감사합니다. –