서버에서 JSON 날짜 사제 (ASP.NET)
문제
나는 현재 멋진 jQuery 플러그인 'Week Calendar'를 구현하려고 노력하고 있습니다.여기) 내 간단한 asp.net 웹 사이트에서. 나는 캘린더에 데이터를 보내고 클라이언트 측 이벤트 (이벤트 생성, 이벤트 수정 등)에 응답하기 위해 두 개의 [WebMethods]를 설정했습니다.
ASP.NET의 객체의 자동 직렬화 WebMethods를 사용할 때 데이터를 다시 보낼 때 잘 작동하는 것처럼 보이지만 반대가 발생하면 문제가 발생합니다.
캘린더 이벤트를 서버로 다시 보내는 JavaScript 코드는 다음과 같습니다.
save: function() {
calEvent.id = id;
id++;
calEvent.start = new Date(startField.val());
calEvent.end = new Date(endField.val());
calEvent.title = titleField.val();
calEvent.body = bodyField.val();
$calendar.weekCalendar("removeUnsavedEvents");
$calendar.weekCalendar("updateEvent", calEvent);
$dialogContent.dialog("close");
//SAVE TO DATABASE
$.ajax({
type: "POST",
url: "Tracker.aspx/AddEvent",
data: calEvent,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert("saved");
}
});
현재 서버에 '스터브 메소드'가 있습니다.
[WebMthod]
public static string AddEvent(Event e)
{
//save event to database and return something
return "done";
}
그러나 이벤트를 추가 할 때 다음과 같은 예외를 선택하고 있습니다.
유효하지 않은 JSON 원시 : 시작.
서버에서 내 이벤트 객체는 다음과 같이 구성됩니다.
[DataContract]
public class Event
{
[DataMember]
public int id { get; set; }
[DataMember]
public string title { get; set; }
[DataMember]
public string body { get; set; }
[DataMember]
public string start { get; set; }
[DataMember]
public string end { get; set; }
}
해결책
다음과 같이 웹 서비스에 대한 호출을 수정하면 다음과 같이했습니다.
$.ajax({
type: "POST",
url: "Tracker.aspx/AddEvent",
data: '{e : ' + JSON.stringify(calEvent) + '}',
contentType: "application/json; charset=utf-8",
dataType: "text",
success: function(data) {
alert("saved");
}
});
JSON.stringify 함수를 사용하여 서버로 전송되는 JSON의 형식으로 바이올린을 바이어링해야했습니다.
제휴하지 않습니다 StackOverflow