How to correctly format JSON responses (for jQuery) from ASP.NET AJAX?

Guys, I can't seem to get the object serialization working correctly clientside for my app? When I used the getJSON() method inside jQuery with a response mime type of text/json (serialized using JSON.Net library), it was working fine, but as soon as I moved it across to an ajax() request (so I could post my code in webmethods on my page) its fallen apart. Any ideas would be greatly appreciated. Edit: I'm using framework 2.0, not 3.5 My javascript looks like this: function companySearch(txt) { $("#<%= divCompanyResult.ClientID %>").hide(); $("#<%= divCompanyResult.ClientID %>").html(""); var strCompanySearch = $("#<%= tbCompanySearch.ClientID %>").val(); $.ajax ({ type: "POST", url: "Home.aspx/GetCompanies", contentType: "application/json; charset=utf-8", datatype: "json", data: "{name: '" + strCompanySearch + "'} ", success: companySearchSuccess, error: onError }); return (true); } function companySearchSuccess(response) { $.each(response, function(i, company) { $("#<%= divCompanyResult.ClientID %>").prepend(company.Name + "
"); }); $("#<%= divCompanyResult.ClientID %>").slideDown(1000); } And my .ASPX page (nb. its a page, not a webservice), looks like this: [WebMethod] public static Company[] GetCompanies(string name) { Company[] companies = Company.FindCompanies(name); return companies; } And the object its returning: [ActiveRecord] public class Company : ActiveRecordBase { private int iD; private string name; private string accountNo; private string streetAddr1; private string streetAddr2; private string streetSuburb; private string streetCity; private string postAddr1; private string postAddr2; private string postSuburb; private string postState; private string postPC; private string accountType; private string accountSubType; private string areaRep; private string status; private string overview; private string bpcsId; private string modifiedBy; private DateTime modifiedDate; private IList contacts; [PrimaryKey] public int ID { get { return this.iD; } set { this.iD = value; } } [Property] public string Name { get { return this.name; } set { this.name = value; } } [Property] public string AccountNo { get { return this.accountNo; } set { this.accountNo = value; } } [Property] public string StreetAddr1 { get { return this.streetAddr1; } set { this.streetAddr1 = value; } } [Property] public string StreetAddr2 { get { return this.streetAddr2; } set { this.streetAddr2 = value; } } [Property] public string StreetSuburb { get { return this.streetSuburb; } set { this.streetSuburb = value; } } [Property] public string StreetState { get { return this.streetCity; } set { this.streetCity = value; } } [Property] public string StreetPC { get { return this.streetCity; } set { this.streetCity = value; } } [Property] public string PostAddr1 { get { return this.postAddr1; } set { this.postAddr1 = value; } } [Property] public string PostAddr2 { get { return this.postAddr2; } set { this.postAddr2 = value; } } [Property] public string PostSuburb { get { return this.postSuburb; } set { this.postSuburb = value; } } [Property] public string PostState { get { return this.postState; } set { this.postState = value; } } [Property] public string PostPC { get { return this.postPC; } set { this.postPC = value; } } [Property] public string AccountType { get { return this.accountType; } set { this.accountType = value; } } [Property] public string AccountSubType { get { return this.accountSubType; } set { this.accountSubType = value; } } [Property] public string AreaRep { get { return this.areaRep; } set { this.areaRep = value; } } [Property] public string Status { get { return this.status; } set { this.status = value; } } [Property] public string Overview { get { return this.overview; } set { this.overview = value; } } [Property] public string BPCSId { get { return this.bpcsId; } set { this.bpcsId = value; } } [Property] public string ModifiedBy { get { return this.modifiedBy; } set { this.modifiedBy = value; } } [Property] public DateTime ModifiedDate { get { return this.modifiedDate; } set { this.modifiedDate = value; } } // Inverse ensures is read-only ie. Contact controls the relationship // Castle will usually infer relationship, but we explicitly set just to be on the safe side [HasMany(Inverse=true, Table="Contact", ColumnKey="CompanyId")] [ScriptIgnore] public IList Contacts { get { return this.contacts; } set { this.contacts = value; } } protected Company() { } public Company(string Name, string StreetAddr1) { this.Name = Name; this.StreetAddr1 = StreetAddr1; ModifiedBy = "Test"; ModifiedDate = DateTime.Now; } public static Company[] FindCompanies(string name) { return FindAll(Expression.InsensitiveLike("Name", "%" + name + "%")); } }

以上就是How to correctly format JSON responses (for jQuery) from ASP.NET AJAX?的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » jQuery 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏