2009-11-18 75 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的格式发送到服务器