代码之家  ›  专栏  ›  技术社区  ›  Martin Ongtangco

将c实体类传递给json jquery时,httpget失败

  •  0
  • Martin Ongtangco  · 技术社区  · 14 年前

    这是我的jquery:

    $.ajax({
            type: 'GET',
            url: '/services/Service.asmx/FamilyHistory',
            data: JSON.stringify({
                userID: 10,
                historyID: famid
            }),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function(val) {
                var famHist = val.d;
                alert(famHist.ID);
            },
            error: function() {
                parent.$.jGrowl('<b>Failed</b>',
                     {
                         header: 'User Action:',
                         life: 3000
                     });
            }
        });
    

    我的班级:

    public sealed class FamilyHistoryEntity
    {
        public string ID { get; set; }
        public string RelativeName { get; set; }
    }
    

    我的Web服务:

        [WebMethod(EnableSession = true)]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
        public FamilyHistoryEntity FamilyHistory(int userID, string historyID)
        {
             return GetFamilyHistory(historyID, userID); // returns a FamilyHistoryEntity class
        }
    

    问题是,我甚至不能让它在WebService上做断点,它只是抛出jQueryAjax错误事件。

    1 回复  |  直到 14 年前
        1
  •  1
  •   spinon    14 年前

    为什么要使用stringify函数?它似乎希望调用一个带有字符串参数的方法,而不是方法的两个参数。

    也许我错过了什么?

    编辑:因此您可以将数据属性更改为:

    data: { userID: 10, historyID: famid },
    

    尤其是当您将ContentType指定为JSON时。