2014-09-23 123 views
1

我的sendig JSON对象strid如下:如何发送JSON数据

var strid = "{id:'"+val.id+"'}"; 
     $.ajax({ 
      type: "POST", 
      url: "FrmUserPortal.aspx/AnnounceInfo", 
      data:JSON.stringify(strid), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 

       var mydata = data.d; 
       alert(mydata); 

      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown); 
      }, 
     }); 

但将WebMethod并没有叫。我的方法是

[WebMethod] 
    [ScriptMethod(UseHttpGet = false)] 
    public static Announce AnnounceInfo(string Id) 
    { 
     string dgFill = "Select AnnounceTitle,AnnounceDescription From AnnouncementInformation Where AnnouncetId = '"+Id+"'"; 
     DataTable dtFill = DataManager.ExecuteQuery(dgFill); 

     Announce An = new Announce(); 
     if (dtFill.Rows.Count > 0) 
     { 

      An.AnnounceTitle = dtFill.Rows[0]["AnnounceTitle"].ToString(); 
      An.AnnounceDescription=dtFill.Rows[0]["AnnounceDescription"].ToString(); 

      return An; 
     } 

     return An; 

    } 
public class Announce 
    { 
     public string AnnounceTitle { get;set;} 
     public string AnnounceDescription { get; set; } 

    } 
+0

如果我没有记错......你不能在web服务中返回一个自定义类型......顺便说一下,你的意思是不工作吗?是否有任何错误或..? – User2012384 2014-09-23 09:07:36

+0

你需要返回json结果 – Neel 2014-09-23 09:11:51

+0

我建议你浏览你的路由配置 – Fka 2014-09-23 09:19:42

回答

0

您使用Json.stringify,但您发送一个字符串作为参数。尝试创建这样的对象:

var strid = {"Id": val.id };