2017-03-01 75 views
0

我的模型:如何通过JSON函数显示来自一个多列表的数据?


ClassAllocate:标识,DepartmentID的,CourseId,RoomId,大卫·,开始时间,结束时间

课程:标识,CourseCode,CourseName,DepartmentID的

房间:编号,客房编号

日:标识,DAYNAME

我试图在视图页面从“ClassAllocates”表中搜索按部门ID的课程,并试图只显示那些课程安排/分配细节。

我正在使用JSON从控制器发送列表来查看。我需要从JsonResult函数发送多个列表。我可以发送它们(我试图发送2个列表),但是,我无法显示它们。它显示[对象对象],或者在我的尝试中没有任何东西或未定义。

我包括我的控制器funtion和Javascript鉴于:

1:控制器功能

public JsonResult GetCourseIdListByDepartmentId(int departmentId) 
    { 
     var x = db.ClassAllocates.DistinctBy(m => m.CourseId).Where(m => m.DepartmentId == departmentId).ToList(); 
     var r = db.ClassAllocates.DistinctBy(m => m.RoomId).Where(m => m.DepartmentId == departmentId).ToList(); 
     var all = new [] {x,r}.ToList(); 

     return Json(all, JsonRequestBehavior.AllowGet); 
    } 

第2:查看Java脚本

<script> 
$("#DepartmentId").change(function() { 
    var dptId = $("#DepartmentId").val(); 
    //alert(dptId); 
    $(".RowClass").empty(); 


    var json = { 
     departmentId: dptId 
    }; 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("GetCourseIdListByDepartmentId", "ClassAllocates")', 
     contentType: "application/json; charset=utf-8", 
     data: JSON.stringify(json), 
     success: function (data) { 

      $.each(data, function (key, value) { 

       $(".table2").append(
         '<tr class="RowClass">' + 
         '<td>' + value.Couse + '</td>' 

         + '<tr>'); 
       }); 
     } 
    }); 
}); 

这导致: 未定义

我需要的,CourseCode,CourseName和RoomNumber

回答

0

我有办法。由于JSON返回List或者列表,那么在View代码或客户端代码中JSON成功后,我需要为for循环写两次。

$.each(data, function (key, value) { 
       if (key==0) { 
        $.each(this, function (k, v) { 
         $(".table2").append(
          '<tr class="RowClass">' + 
          '<td>' + v.Course.CourseCode + '</td>' 

          + '<tr>'); 
        }); 
       } 

       }); 

现在我试图通过并获得更复杂的数据。

相关问题