2014-02-10 38 views
1

希望有人可以提供幫助。真的拉我的頭髮,開始認爲我應該沒有使用wcf數據服務。它很容易從服務中獲得odata,所以我認爲我可以從我的JavaScript代碼發送json對象,並將內容作爲服務中的對象讀取,但它不返回任何內容。json對象在WCF數據服務中不返回任何內容WebInvoke VB Odata

我的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數據服務?

+0

有沒有必要使用JSON.stringify,你想發送json,而不是它的字符串版本。 –

+0

謝謝,但如果我不,它發送數據爲undefined =&undefined =&undefined =。 json.stringify爲我正確發送它。 – nickand

回答

0

好吧,所以我創建了一個新的wcf數據服務,刪除了繼承dataservice引用和initializeservice子。

的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: - 包裝,但它的作品讓我很開心。希望它能幫助那裏的人。