无法将Json数据传递给MVC视图

时间:2013-09-30 19:48:07

标签: jquery ajax asp.net-mvc json

我正在尝试将Json数据传递到视图中的html表。无论出于何种原因,我无法让它发挥作用。这是我的代码。我有一个“组代码”侧边栏,表格应根据所选的组代码进行过滤。当我“警告(数据)”时,我只得到我需要的数据,如果我像下面那样序列化,或者我只是得到[objet] [对象]。此外,如果我做$('。xx')。html(数据)它返回数据但是以json格式显然不是在表格结构中

--Controller 

[HttpPost]
    public JsonResult Index(string grpCode)
    {  
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        var data = serializer.Serialize(new EmployeeDAL().EmployeeData(grpCode).employeeList);    
         return Json(data);        
    }
--View

 $('#tbl tr td').click(function () {
            var selection = $(this).text().trim();

            $.ajax({
                type: "Post",
                url: "/Home/Index/",
                dataType: "Json",
                data: { grpCode: selection },                    
                success: function (data) {                      
                    alert(data);
                    $.each(data, function (index, item) {
                        var row = $("<tr />");
                        $("<td />").text(item.First_Name).appendTo(row);
                           $("<td />").text(item.Last_Name).appendTo(row);
                           $("<td />").text(item.Work_Pager).appendTo(row);
                           $("<td />").text(item.Effective_Date).appendTo(row);                           
                        row.appendTo("table.xx");
                    });
<table class="xx">  </table>

--Sample JSon [{"Last_Name": "Brown",
    "First_Name": "Rodney" "Work_Pager": "43343"}]

我只是在使用那个“垃圾”表进行测试。当我开始工作时,真正的表格将正常结构

1 个答案:

答案 0 :(得分:0)

JsonResult会自动将您的对象序列化为JSON。 你应该使用:

public JsonResult Index(string grpCode)
{  
    var data = new EmployeeDAL().EmployeeData(grpCode).employeeList;    
     return Json(data);        
}

编辑: 如果警报数据为您提供[object] [Oject],那么返回的内容可能不是一个简单的项目列表,而是一个复杂的对象。

例如:

{"items":[{"name":"test","completed":false},{"name":"test2","completed":true}]}

那么项目数组(test和test2)将包含在data.items中,您可以使用以下代码获取数组的长度:alert(data.items.length);

为了进行调试,我建议使用Chrome,特别是使用网络和来源标签。