如何通过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
答
我有办法。由于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>');
});
}
});
现在我试图通过并获得更复杂的数据。