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

Asp.net json对象在WCF数据服务WebInvoke VB Odata中不返回任何内容,asp.net,json,vb.net,odata,wcf-data-services,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

希望有人能帮忙。我真的很生气,开始觉得我不应该使用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 :-(");
      }
  });
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 :-(");
  }
我的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
_
公共类对象
作为整数的公共属性id
公共属性frmid为字符串
公共属性frmval作为字符串
末级
_
作为布尔值的公共函数SendItems(myobject作为字符串)
'在请求ToObject时必须将字符串作为错误请求
Return True“此处无任何内容,因为无法获取json对象
端函数

我第一次涉足wcf数据服务和jquery。希望将文本框名称和值的列表返回给wcf数据服务进行处理。wcf数据服务可以吗?

好的,所以我创建了一个新的wcf数据服务,删除了inherits数据服务引用并初始化了service sub

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 :-(");
      }
  });
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
公共类tobject
公共属性frmid为字符串
公共属性frmval作为字符串
末级
_
公共函数SendItems(anyobjectname作为列表(属于TacoObjectItem))作为布尔值
返回真值
端函数

这将把anyobjectname变成我的对象列表。我不明白为什么我不能使用BodyStyle:-包装,但它工作得很好,我很高兴。希望它能帮助其他人

没有必要使用JSON.stringify,您希望发送JSON,而不是它的字符串版本。谢谢,但如果我不这样做,它将以undefined=&undefined=&undefined=的形式发送数据。json.stringify为我正确发送了它。