从ajax调用传递给wcf的参数作为null

时间:2017-01-26 21:48:05

标签: c# jquery ajax wcf

有人能帮助我吗?从ajax传递到wcf的参数被重新接收为null。我在堆栈溢出中经历了很多帖子但是找不到修复程序。我的代码片段如下。谢谢你的期待。

$.ajax({
    type: "POST",
    url: "/CustomServices/NewsService/getmyWork",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: JSON.stringify({ itemType: "category" }),
    processData: true,
    success: function (result) { alert("success " + result); },
    error: function (error) { alert("failure " + error.statusText); }
});

界面

    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "getmyWork/?itemType={itemType}", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
    SolutionV1.CustomServices.NewsService.DynamicItemsContext DoWork(string itemType);
};

服务方法

    public DynamicItemsContext DoWork(string itemType)
    {
        var items = RetrieveItems(itemType);
        var context = new DynamicItemsContext();
        context.Items = items.ToList();
        context.TotalCount = items.Count();
        return context;
    }

1 个答案:

答案 0 :(得分:0)

您的WCF方法设置为http post方法,但是uri模板建议该参数将作为URL上的查询字符串参数传递。

当您发出POST请求时,您的数据将在请求正文中传递,而不是在URL中传递。

尝试更改方法的URI模板以删除查询字符串。