json对象在WCF数据服务WebInvoke VB Odata中不返回任何内容

时间:2014-02-10 18:23:24

标签: asp.net json vb.net odata wcf-data-services

希望有人可以提供帮助。真的拉我的头发,并开始认为我应该没有使用wcf数据服务。从服务中获取odata很容易,所以我想我可以从我的javascript代码发送json对象并将内容作为我服务中的对象读取但是它什么都不返回。

我的javascript:

 var vname = [];
 var obj = { myobject: { frmid: "test", frmval: "1111" } }
 vname.push(obj)

 $.ajax({
      url: "MyWCFDataService.svc/SendItems",
      type: "POST",
      dataType: "json",
      contentType: "json",
      data: { myobject: JSON.stringify(vname) },
      success: function () {
          alert("success :-)");
      },
      error: function () {
          alert("fail :-(");
      }
  });

我的课程和功能在我的svc

<DataServiceKeyAttribute("id")> _
Public Class tobject
    Public Property id As Integer
    Public Property frmid As String
    Public Property frmval As String
End Class

<WebInvoke()> _
Public Function SendItems(myobject As String) As Boolean
           ' have to ask for string as errors when asking for tobject
    Return True ' nothing here yet as cannot get json object
End Function

我第一次冒险进入wcf数据服务和jquery。希望将一个文本框名称和值列表返回给要处理的wcf数据服务。是否可以使用wcf数据服务?

1 个答案:

答案 0 :(得分:0)

好的,所以我创建了一个新的wcf数据服务,删除了inherits dataservice引用和initializeservice sub。

的javascript:

vname.push( { frmid: "test", frmval: "1111" })

$.ajax({
  url: "MyWCFDataService.svc/SendItems",
  type: "POST",
  dataType: "json",
  contentType: "application/json; charset=utf-8",
  data: { JSON.stringify(vname) },
  success: function () {
      alert("success :-)");
  },
  error: function () {
      alert("fail :-(");
  }

});

服务:

Public Class tobject
    Public Property frmid As String
    Public Property frmval As String
End Class


<OperationContract>
<WebInvoke(ResponseFormat:=WebMessageFormat.Json, RequestFormat:=WebMessageFormat.Json)> _
Public Function SendItems(anyobjectname As List(Of tacosobjectitem)) As Boolean

    Return True

End Function

现在将anyobjectname转换为我的对象列表。我无法理解为什么我不能使用BodyStyle: - Wrapped但它的工作非常快乐。希望它可以帮助那里的人。