2009-11-18 55 views
0

我目前正試圖在我簡單的asp.net網站上實現美妙的jQuery插件'周曆'(here)。我建立了幾個[WebMethods]向日歷發送數據並響應客戶端事件(創建事件,修改事件等)。反序列化服務器上​​的json日期(asp.net)

當使用WebMethods時,asp.net的對象自動序列化似乎在發回數據時運行良好,但是當相反的情況發生時,我遇到了問題。

有問題的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"); 
         } 
        }); 

目前我只在服務器上有一個「存根方法」來檢查反序列化工作:

無效JSON PR:

[WebMthod]  
public static string AddEvent(Event e) 
     { 
      //save event to database and return something 
      return "done"; 
    } 

然而,添加事件,當我拿起以下異常imitive:開始。

在服務器上,我的事件對象由如下:

[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; } 
} 
+0

@Chris:在進行編輯時,最好修復ap上的所有問題ost,而不是簡單地在各種問題上大規模改變標籤。謝謝! – 2013-11-15 07:41:17

+0

@Chris:不用擔心,我指的是一般的編輯,這是我名單上的第一個,所以我點擊了那個。 – 2013-11-15 08:45:59

回答

0

修改調用Web服務,如下的伎倆:

$.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的格式發送到服務器