有人能帮助我吗?从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;
}
答案 0 :(得分:0)
您的WCF方法设置为http post方法,但是uri模板建议该参数将作为URL上的查询字符串参数传递。
当您发出POST请求时,您的数据将在请求正文中传递,而不是在URL中传递。
尝试更改方法的URI模板以删除查询字符串。