2011-06-15 84 views
-1

我有添加到列表中的查询。现在我需要在javascript中使用它。它正在ASP.NET 3.5中完成。所以,我需要将它作为JSON对象发送。这是我做了什么:(我不知道这是否是得到一个JSON对象的正确的方法纠正我,如果我错了将LINQ查询结果存储为JSON对象并传递给javascript

List<NCDCPoint> dupli = (from n in CDC.NCDCPoints 
          where n.EVENT_TYPE_ID == et 
          where n.BeginDate == b 
          where n.EndDate == e 
          select n).ToList<NCDCPoint>(); 
    System.Web.Script.Serialization.JavaScriptSerializer oSerializer = 
new System.Web.Script.Serialization.JavaScriptSerializer(); 
    string sJSON = oSerializer.Serialize(dupli); 





} 

这是我的jQuery的样子

$.ajax({ 
      type: "POST", url: "Data.aspx/CheckInsertRecord", 
      data: "{EventType:'" + eventtype + "',BeginDate:'" + begindate + "'," + 
        "EndDate:'" + enddate+"' }", 
      contentType: "application/json; charset=utf-8", dataType: "json", 
      success: function (msg) { 
      alert(msg.d); 
      if(msg.d == "true") 
     { 
     Showduplicate(); 
     } 
      } 
     }); 

所以,请让我知道接下来我需要做什么?还有一件事是我已经返回true或false返回到aspx页面中的$ .ajax {}那么我应该如何发送JSON对象?

+1

-1,你的框架是什么?这个代码在哪里被调用?你已经在哪里返回true/false?你的jQuery调用是什么样的?服务器上的“动作”或ajax方法是什么样的?您需要提供更多信息。 – 2011-06-15 03:12:09

+0

更新了帖子。 – 2011-06-15 03:15:50

回答

0

更改方法返回List<NCDCPoint>和声明的返回类型为JSON:

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json] 
public static List<NCDCPoint> CheckInsertRecord(String EventType, String BeginDate, String EndDate) 
{ 
    NCDCPoint ncdc = new NCDCPoint(); 
    CEOSurveyDataContext CDC = new CEOSurveyDataContext(); 
    int et = Convert.ToInt32(EventType); 


    DateTime b = Convert.ToDateTime(BeginDate); 
    DateTime e = Convert.ToDateTime(EndDate); 

     bool query = (from n in CDC.NCDCPoints 
         where n.EVENT_TYPE_ID == et 
         where n.BeginDate == b 
         where n.EndDate == e 
         select n).Count()>0; 

    return = (from n in CDC.NCDCPoints 
          where n.EVENT_TYPE_ID == et 
          where n.BeginDate == b 
          where n.EndDate == e 
          select n).ToList<NCDCPoint>(); 
} 
+0

嘿,我可以同时发送“真或假”和JSON对象...否则我需要声明一个单独的方法 – 2011-06-15 03:23:18

+0

嘿..当我试图使用警报(msg.d)..我什么也没得到......实际上它甚至没有显示警报。 – 2011-06-15 03:45:18

0

可以使用JavascriptSerializer serailize对象,并将其发送。

var dupli= from n in CDC.NCDCPoints 
         where n.EVENT_TYPE_ID == et 
         where n.BeginDate == b 
         where n.EndDate == e 
         select n; 

return new JavaScriptSerializer().Serialize(dupli); 

而在jquery ajax的成功回调。

... 
success:function(msg){ 
var data = $.parseJSON(msg.d); 
//And you get your object 
} 
+0

序列化“aspnet_User”类型的对象时检测到循环引用。这是我更新代码时得到的错误。 – 2011-06-15 03:37:28

相关问题