2013-02-18 201 views
0

在我的控制器我打电话web服务提取数据

Metadata.Client.Service.Client returnClient = new Metadata.Client.Service.Client(); 

returnClient = client.UpdateClient(updateClient); 

return Json(new { returnClient }, JsonRequestBehavior.AllowGet); 

在我的.cshtml Ajax调用如下

$.ajax(
{ 
    type: "GET", 
    contentType: "application/json; charset=utf-8", 
    url: '@Url.Action("UpdateRecord", "Client")', 
    data: { "id": id, "name": clientName, "code": clientCode, "typeId": clientTypeId, "clientStatusCode": clientStatusCode }, 
    dataType: "json", 
    beforeSend: function() {//alert(id); 
    }, 
    error: function (request) { 
    alert('error');  
    alert(request.responseText); 
    }, 
    success: function (data) { 
    alert('success'); 
    console.log(data); 

    //var parsed = JSON.parse(data); 
    //alert(parsed); 
    //var k = JSON.stringify(data); 
    //alert(parsed); 

    } 

我尝试了几种方法来提取数据。在console.log它显示如下

[09:27:07.989] ({returnClient:{ExtensionData:{}, ClientCode:"C09091", ClientId:39, ClientName:"Test1", ClientStatus:[{ExtensionData:{}, StatusCode:{ExtensionData:{}, Name:"Active", StatusCodeId:5}, StatusType:{ExtensionData:{}, Name:"OE", StatusTypeId:1}}], ClientType:{ExtensionData:{}, ClientTypeId:7, ClientTypeName:"FDFD"}}}) 

请谁能帮帮忙提取该数据

ClientName, ClientCode, ClientId, ClientStatus.StatusCode, ClientStatus.Name, ClientStatus.StatusCodeId, StatusType.Name

回答

1
success: function (data) { 
    var ccode = data.returnClient.ClientCode; 
    var cid = data.returnClient.ClientId; 
    var cname = data.returnClient.ClientName; 
    var ctypeid = data.returnClient.ClientType.ClientTypeId; 
    var ctypename = data.returnClient.ClientType.ClientTypeName; 

    for (var i = 0; i < data.returnClient.ClientStatus.length; i++) { 
     var codeName = data.returnClient.ClientStatus[i].StatusCode.Name; 
     var codeId = data.returnClient.ClientStatus[i].StatusCode.StatusCodeId; 
     var typeName = data.returnClient.ClientStatus[i].StatusType.Name; 
     var typeId = data.returnClient.ClientStatus[i].StatusType.StatusTypeId; 
    } 
} 
+0

感谢亚历克斯它工作绝对很好,很大的帮助。 – VVR147493 2013-02-18 10:06:59

+0

很高兴为您效劳。我忘了另外一种方式 - 你也可以使用类似字典的访问来访问项目:'data ['returnClient']。ClientCode'或'data ['returnClient'] ['ClientCode']'。 – 2013-02-18 11:38:14

+0

非常感谢Alex的帮助。 – VVR147493 2013-02-18 16:57:32

1

您可以尝试以下操作:

var jsonData = eval("(" + data + ")"); 

这将返回给你JSON对象。然后你可以从这个JSON对象中检索你的数据ct通过使用点(。)运算符或通过使用[]