【问题标题】:How Show data from for a miltiple list return by JSON funtion?如何显示 JSON 函数返回的多个列表的数据?
【发布时间】:2017-03-01 21:43:18
【问题描述】:

我的模特:


ClassAllocate:Id、DepartmentId、CourseId、RoomId、DayId、StartTime、EndTime

课程:Id、CourseCode、CourseName、DepartmentId

房间: ID、房间号

日: ID、日名

我正在尝试按部门 ID 从视图页面中的“ClassAllocates”表中搜索课程,并尝试仅显示这些课程安排/分配详细信息。

我正在使用 JSON 将列表从控制器发送到视图。我需要从 JsonResult 函数发送多个列表列表。我可以发送它们(我尝试发送 2 个列表),但是我无法显示它们。它在我的尝试中显示 [object Object] 或什么都没有或未定义。

我正在查看我的控制器功能和 Javascript:

第一:控制器功能

 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);
    }

第二:查看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

【问题讨论】:

    标签: javascript asp.net json linq


    【解决方案1】:

    我有办法。由于 JSON 返回 List 或列表,那么在查看代码或客户端代码中 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>');
                        });
                    }
    
                    });
    

    现在我正在尝试传递并获取更复杂的数据。

    【讨论】:

      猜你喜欢
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多