在ADO.NET数据服务中对服务操作执行POST

时间:2010-04-15 19:42:39

标签: jquery wcf json post web-services

是否可以POST到ADO.NET数据服务中定义的服务操作(它使用WebInvoke修饰)?我将服务操作作为HTTP GET调用没有问题。但是,当我切换到POST时,堆栈跟踪始终返回“参数不能为NULL”。我正在使用下面的jQuery语法,并将POST作为JSON发送(虽然我不包括$ .ajax调用,参数名称完全排列)。可以尝试使用WCF,而不是ADO.NET数据服务(新重命名为WCF数据服务)。但是,我倾向于首先使用这种方法。我在使用和不使用 stringify 方法时尝试过此操作。大多数在线示例仅显示如何对实体使用POST(即用于处理CRUD操作)。但是,在这种情况下,我们正在POST一个服务操作。

function PostToDataService() {
   varType = "POST";
   varUrl = "http://dev-server/MyServices/MyService.svc/SampleSO";
   varData = { CustomMessage: $("#TextBox1").val() };
   varData = JSON.stringify(varData);
   varContentType = "application/json; charset=utf-8";
   varDataType = "json";
   varProcessData = true;
   CallService();
}

1 个答案:

答案 0 :(得分:0)

根据我的知识,ado.net数据服务对你的方法有一些限制,另外一个,你可以使用get请求传递你的参数,如果你发送巨大的参数你可以用$ batch来克服它。

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataservices/thread/40a1d8a2-c0d7-45ff-88a0-ce8697b37155