将对象从Web Service返回到Ajax Request成功回调函数

时间:2014-07-08 23:27:39

标签: javascript jquery .net ajax ajax-request

Hello Fellow Developers,

我有一个SSN文本框,onblur调用一个函数,该函数向Web方法发出ajax请求,以决定是否雇用了一名员工。

Web方法将TermedEmployee对象返回给成功回调,但我不确定如何解析对象。

 $('#<%=FormView1.FindControl("SSNField").ClientID%>').blur(hideValue);

 hideValue = function (ev) {
 var $this = $(this);

 $this.data('value', $this.val());
 $('#<%=FormView1.FindControl("hiddenSSN").ClientID%>').val($this.val());

   var data2Send = '{"SSN": ' + $this.val() + ' }';
   $.ajax({
       type: "POST",
       url: "AuthforHire.aspx/EmployeeisRehire",
       data: data2Send,
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function (result) {

           var obj = JSON.stringify(result.d);


           if (obj.IsTermed) {
              $('#%=RadWindowRehire.ContentContainer.FindControl("TextBoxTermID").ClientID%>').val(arg.d);       
                 var wndWidth = 900;
                 var wndHeight = 500;
                 var wnd = window.radopen(null, "RadWindowRehire");



             }

         },
         error: function (xhr) {
             alert('Form update failed. ');  //error occurred
         }

     });

以下是我的webMethod缩小版,可以正常使用

[System.Web.Services.WebMethod]
public static TermedEmployee EmployeeisRehire(string SSN)
{ 
 TermedEmployee termedEmp = new TermedEmployee();
// Db call to get necessary data.

   termedEmp.Name = dr["name"];
   termedEmp.TermDate = Convert.ToDateTime(dr["TermDate"].ToString());
   ......
 }

那么如何从返回给回调函数的对象中提取Name,TermDate,StartDate,ReasonforTerm等?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

成功回调的第一行是:

var obj = JSON.stringify(result.d);

正在尝试序列化ASP.Net已经为您序列化的内容。 将其更改为:

var obj = result.d;

然后,您就可以按名称访问obj.Nameobj.TermDate和所有其他属性。