asp.net mvc를 사용하고 있습니다.mvc 작업에 대한 ajax 호출의 빈 데이터
var specificData = { prop1: 'abc', prop2: [1,2,3] }
$.ajax({
type: 'POST',
dataType: 'json',
url: '/MyController/Create',
data: { myData: specificData }, //data contains the same attributes as MyData class
success: function (data, b,c,d) {
alert("success!");
},
error: function (data, b, c, d) {
alert('fail');
}
});
문제는 만들기 작업을 내부의 "데이터"변수가 있다는 것이다 : 나는 이런 식으로 호출하고
public class MyData {
public string prop1 {get;set;}
public IEnumerable<int> prop2 {get;set;}
}
:
[HttpPost]
public ActionResult Create(MyData myData)
{
.... // For some reason data is always empty. The attributes are all null
}
의 MyData이 : 나는이 작업을 인스턴스화되었지만 속성은 모두 null입니다. 내가 뭔가 잘못하고 있는거야?
UPDATE
는 @Rory McCrossan I에 따른 data: specificData
를 사용하는 대신 data: { myData: specificData }
하여 해결한다. 하지만 지금은 다른 곳에서이 문제가 있습니다.
var specificData = { prop1: 'abc',
prop2: [
{name:'a'},
{name:'b'},
{name:'c'}]
};
: 지금은 좀 더 복잡한 클래스를 사용하고 있기 때문에의 MyData 클래스와 관련된 직렬화 문제 :
public class MyData {
public string prop1 {get;set;}
public IEnumerable<Person> prop2 {get;set;}
}
및 specificData이다 공용 클래스 사람 {} 를; 세트 공공 문자열 이름은 {얻을}
작업에서 myData.prop2.ElementAt (0) .name이 null입니다. 지금 무엇이 잘못 되었습니까?
'데이터'변수의 내용을 게시 할 수 있습니까? 또한 MyData 클래스의 속성 목록이 도움이 될 것입니다. –
문제는 변수 데이터를 사용하고 있다고 생각합니다. – Elby
@Rory McCrossan : 코드를 업데이트했습니다. – Naor