jQuery .post的JSON返回对象为null(当它不是时)

时间:2018-04-20 18:52:23

标签: jquery asp.net json

我有一个jQuery .post命令,它在我的ASP.NET项目中调用一个Web服务。该Web服务正在运行存储过程并将数据打包到要返回给客户端的对象中。当我通过Firebug查看响应时,一切都被送回。但是,当我尝试访问该响应对象时,它为null。为什么呢?

我的jQuery:

$(".listingManagerEdit").live("click", function () {
    $.post("/WebServices/AoP.asmx/GetListingManagerByID",
        JSON.stringify({
            ListingMgrID: $(this).closest("li.listingMgrs").data("listingmgrid")
        }),
        function (data) {
            $(".billingName").val(data.Name);
            $(".billingOrgName").val(data.OrgName);
            $(".billingAddress1").val(data.Address1);
            $(".billingAddress2").val(data.Address2);
            $(".billingCity").val(data.City);
            $(".billingState option:selected").val(data.State);
            $(".billingZipCode").val(data.Zip);
            $(".billingPhone").val(data.Phone);
            $(".billingPhoneExt").val(data.PhoneExt);
            $(".billingFax").val(data.Fax);
            $(".billingFaxExt").val(data.FaxExt);
            $(".billingEMail").val(data.Email);
        }
    );
});

我的网络服务:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public ListingManager GetListingManagerByID(int ListingMgrID)
{
    ListingManager LM = new ListingManager();
    DataTable dt = DataAccess.AoP.GetListingManagerByID(ListingMgrID);

    LM.Name = dt.Rows[0]["Name"].ToString();
    LM.OrgName = dt.Rows[0]["OrgName"].ToString();
    LM.Address1 = dt.Rows[0]["Address1"].ToString();
    LM.Address2 = dt.Rows[0]["Address2"].ToString();
    LM.City = dt.Rows[0]["City"].ToString();
    LM.State = dt.Rows[0]["State"].ToString();
    LM.Zip = dt.Rows[0]["Zip"].ToString();
    LM.Phone = Utilities.FormatPhoneNumber(dt.Rows[0]["Phone"].ToString());
    LM.PhoneExt = dt.Rows[0]["PhoneExt"].ToString();
    LM.Fax = Utilities.FormatPhoneNumber(dt.Rows[0]["Fax"].ToString());
    LM.FaxExt = dt.Rows[0]["FaxExt"].ToString();
    LM.Email = dt.Rows[0]["Email"].ToString();

    return LM;
}

响应(根据FireBug):

d:  {…}
__type  BusinessLogic.AoP+ListingManager
Name:   John Smith
OrgName:    
Address1:   123 Pine Street, 3rd Floor
Address2:   
City:   San Francisco
State:  CA
Zip:    94104
Phone:  (415) 123-4567
PhoneExt:   
Fax:    
FaxExt: 
Email:  me@me.org

在.post电话的成功功能中,"数据"是空的。

1 个答案:

答案 0 :(得分:1)

你应该传回json,但是你要归还一个物体。

如果你可以使用JSON.Net,

return JsonConvert.SerializeObject(LM);
// or serialize it in C#.

在回调中

function (data) {
    var o = JSON.parse(data);
    $(".billingName").val(data[0].Name);
    ...