Asp.net json对象在WCF数据服务WebInvoke VB Odata中不返回任何内容
希望有人能帮忙。我真的很生气,开始觉得我不应该使用wcf数据服务。从服务中获取odata很容易,因此我认为可以从javascript代码中发送json对象,并将内容作为服务中的对象读取,但它不会返回任何内容 我的javascript: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
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为我正确发送了它。