1

各位开发者您好,

我有一个 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 等呢?

先感谢您!

4

1 回答 1

2

成功回调的第一行是:

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

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

var obj = result.d;

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

于 2014-07-09T01:24:49.607 回答