如何将数据从json动作提取到视图中

时间:2014-12-22 10:12:37

标签: c# jquery ajax asp.net-mvc-4

[HttpPost] 
public JsonResult searchByName(string name)
{
    dbCRMEntities dbx = new dbCRMEntities();
    var test = name;             
    var names = dbx.CONTACTS.Where(chk => name == chk.NAME);
    return this.Json(names, JsonRequestBehavior.AllowGet);    
}

此方法以此格式返回数据:

[
    {
        "CONTACT_ID": 37,
        "NAME": "umair",
        "JOB_TITLE": "internee",
        "COMPANY": "fastservices",
        "PHONE": "244",
        "EMAIL": "umairliaquat@gmail.com",
        "WEB": "alskdjg",
        "ADDRESS": "lahore",
        "STATUS": "Inactive",
        "TAGS": "sdf",
        "LEAD_SOURCE": "partner",
        "BACKGROUND": "skldjga",
        "OWNER": "a",
        "BIRTHDAY": "2014-12-18",
        "EntityState": 2,
        "EntityKey": {
            "EntitySetName": "CONTACTS",
            "EntityContainerName": "dbCRMEntities",
            "EntityKeyValues": [
                {
                    "Key": "CONTACT_ID",
                    "Value": 37
                }
            ],
            "IsTemporary": false
        }
    }
]

我的jquery方法是:

$(document).ready(function () {
    $("#btn1").click(function () {
        var name = $("#search").val();
        //name = "ali";
        alert(name);

        $.post("/Status/searchByName", { name: name }, function (data) {
            document.write(data);
            $.each(data, function (key, value) {
            });
        }, "text");
    });
});

我想在视图中以表格形式获取数据。请指导我

1 个答案:

答案 0 :(得分:1)

需要将dataType的{​​{1}}更改为$.post。然后jQuery将返回一个对象数组作为'json'参数。

现在在data范围内,第一个参数将是each,第二个参数将是单个对象

index

您还可以使用$.post("/Status/searchByName", { name: name }, function (data) { $.each(data, function (index, item) { var rowData =[]; rowData.push(item.CONTACT_ID); rowData.push(item.COMPANY); rowData.push(item.EntityKey.EntitySetName); /* ETC */ var row ='<tr><td>' + rowData.join('</td><td>') +'</td></tr>'; $('table').append(row); }); }, "json"); }); 遍历每个对象中的每个属性,如果是原始值,则将其推入html

$.each