从jQuery </string>调用的WCF服务返回列表<string>

时间:2011-10-04 03:26:17

标签: c# jquery wcf json

我对我的服务进行了以下调用,即返回list<string>

当我运行此操作时,我收到错误消息。

$(document).ready(function () //executes this code when page loading is done
{
    $.ajax({
        type: "POST",
        url: "Services/pilltrakr.svc/getAllUsers",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            alert(response.d);
        },
        error: function (message) {
            alert("error has occured : " + message);
        }
    });
});

如何从WCF服务返回列表?

接口

[OperationContract]
[WebInvoke(Method = "POST",
                BodyStyle = WebMessageBodyStyle.Wrapped,
                ResponseFormat = WebMessageFormat.Json,
                RequestFormat = WebMessageFormat.Json)]
List<string> getAllUsers();

类别:

public List<string> getAllUsers()
{
    userAccount ua = new userAccount();
    List<string> myUserList = new List<string>();
    myUserList = ua.getAllUsers();

    return myUserList;
}

更新

我将BodyStyle属性更改为WrappedRequest,然后一切正常(我尝试了GET和POST)。然后返回数据。现在我的问题是为什么这个改变解决了这个问题?我是否总是需要包含BodyStyle?

    [OperationContract]
    [WebInvoke(Method = "POST",
                    BodyStyle = WebMessageBodyStyle.WrappedRequest,
                    ResponseFormat = WebMessageFormat.Json,
                    RequestFormat = WebMessageFormat.Json)]
    List<string> getAllUsers();

1 个答案:

答案 0 :(得分:0)

我将BodyStyle属性更改为WrappedRequest,然后一切正常(我尝试了GET和POST)。然后返回数据。现在我的问题是为什么这个改变解决了这个问题?我是否总是需要包含BodyStyle?