2012-02-01 14 views
0

出於某種原因,當我測試解析JSON字符串到一個下拉列表,它的工作這樣做錯誤使用jQuery Web服務調用時來填充下拉列表

var json = [{ "Id": "12345", "WorkUnitId": "SR0001954", "Description": "Test Service Request From Serena", "WorkUnitCategory": "ServiceRequest" }, { "Id": "12355", "WorkUnitId": "WOR001854", "Description": "Test Work Order From Serena", "WorkUnitCategory": "ServiceRequest" }, { "Id": "12365", "WorkUnitId": "DBR001274", "Description": "Test Database Related Service Request From Serena", "WorkUnitCategory": "ServiceRequest"}]; 

      $(json).each(function() { comboboxWorkUnit.append($('<option>').val(this.Id).text(this.WorkUnitId)); }); 

然而,當我tryed從我的web採取JSON並將其置於dropdownlist我得到一個錯誤,說dropdownlist不支持這個metod

$.ajax({ 
type: "POST", 
url: "Services/WorkUnitService.asmx/WorkUnit", 
data: "{'Number' : '" + Number.text() + "','Id': '" + combobox.val() + "','workerType': '" + EmployeeType + "'}", 
contentType: "application/json; charset=utf-8", 
dataType: "json", 
success: function(json) { 
$(json).each(function() { comboboxWorkUnit.append($('<option>').val(this.Id).text(this.WorkUnitId)); }); 

} }); 

我也試過它稱爲Web服務的方法,但通過錯誤

$.postJSON("Services/WorkUnitService.asmx/WorkUnitsForParAndPhase", "{'parNumber' : '" + parNumber + "','phaseId': '" + combobox.val() + "','workerType': '" + EmployeeType + "'}", function(data) { 
     alert(data.toString()); 
     }); 

而且我tryed這裏面從來沒有所謂的web服務

$.getJSON('Services/WorkUnitService.asmx/WorkUnitsForParAndPhase' + parNumber + '/' + combobox.val() + '/' + EmployeeType, 
    function(myData) { 
     alert(myData.toString()); 
    }); 
+0

做一絲web服務'this',看看它採取JSON數據或父數據 – mgraph 2012-02-01 14:52:27

回答

0

我沒有意識到,當在asp.net使用jQuery調用我們需要使用.D

$.ajax({ 
    type: "POST", 
    url: "Services/WorkUnitService.asmx/WorkUnit", 
    data: "{'Number' : '" + Number.text() + "','Id': '" + combobox.val() + "','workerType': '" + EmployeeType + "'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(json) { 
$(json).each(function() { 
alert(json.d); 
});  
0

你確定你的服務返回JSON對象?

+0

嗯,我相信它返回一個JSON字符串 – 2012-02-01 15:06:05

+0

,因爲它正在使用JavaScriptSerializer – 2012-02-01 15:07:25

0

您可以嘗試使用Fiddler2和測試要發送到Web服務請求。

下面是類似於你在做什麼,只是用得到的東西的工作示例。

$.getJSON('Service.asmx?data=123', function (data) { 
    var html = ''; 
    var len = data[0].length; 
    for (var index = 0; index < len; index++) { 
     html += '<option value="' + data[0][index] + '">' + data[1][index] + '</option>'; 
    } 
    $('#yourDivId').append(html); 
}); 
+0

什麼在這兩種方法 – 2012-02-01 15:19:11

+0

從服務器調用數據採集方法的差異不是你的情況很重要系列化,你肯定能保持阿賈克斯「POST」,喲你正在使用。我只想提供一個調試請求的建議,以及填充下拉列表的另一個想法。這是另一篇關於在[Fiddler](http://stackoverflow.com/a/2589203/1182904)中創建該請求的文章。 – 2012-02-02 15:34:48