2013-05-09 2 views
0
public class Person 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

public ActionResult Test (List<Person> persons) 
{ 
    ... 
} 

자바 스크립트 :ajax GET 요청을 사용하여 복잡한 json 개체 목록을 C# 개체에 바인딩 할 수 있습니까?

var person = { Name: "P1", Id: 1 }; 
var persons = []; 
persons.push(person); 
persons.push(person); 
var json = JSON.stringify(persons); 
$.ajax({ 
    url: '@Url.Action("Test")', 
    type: 'GET', 
    dataType: 'json', 
    data: json, 
    contentType: 'application/json; charset=utf-8', 
}); 

내가 사람의 목록을 보내려고하고는 GET 요청을 사용하여 컨트롤러에 객체. 문제는 사람 목록이 항상 null이라는 것입니다. POST 요청을하면 모든 것이 잘 동작합니다.

ajax GET 요청을 사용하여 복잡한 json 개체 목록을 C# 개체에 바인딩 할 수 있습니까?

+0

json 문자열은 어떤 모양입니까? –

+0

이 작업을 통해 달성하고자하는 목표는 무엇입니까? 이와 같이 GET 매개 변수를 사용하여 복잡한 객체를 전달하는 것은 잘못된 일을하는 것처럼 보입니다. 왜 POST를 사용하지 않습니까? –

+0

'System.JSON' 라이브러리를 살펴 보겠습니다. – Nomad101

답변

1

ajax GET 요청을 사용하여 복잡한 json 개체 목록을 C# 개체에 바인딩 할 수 있습니까?

아니요, 아닙니다. 보내 줄 수있는 쿼리 문자열에는 제한이 있으므로 GET 요청에 복잡한 객체가 있으면 어쨌든해야 할 일이 아닐 것입니다. GET 동사는 일반적으로 복잡한 개체를 보내지 않고 ID 및 몇 가지 다른 쿼리 문자열 매개 변수와 같은 간단한 것들로부터 데이터를 검색하는 데 사용됩니다.