public IActionResult Page([Required] int index, String sName, String sId, [Required] int iId, [Required] int pid, Boolean isUnder, Boolean isPost, [Required] int grade) { if (ModelState.IsValid && index > 0) { String sql = "select * from StudentView where InstituteId > 0"; List <SqlParameter> parameters = new List <SqlParameter>(); if (sName != null && sName.Trim() != "") { sql += $" and StudentName like @Name"; parameters.Add(new SqlParameter { ParameterName = "@Name", Value = $"%{sName.Trim()}%", SqlDbType = SqlDbType.NVarChar }); } if (sId != null && sId.Trim() != "") { sql += $" and StudentId = @StudentId"; parameters.Add(new SqlParameter { ParameterName = "@StudentId", Value = sId.Trim(), SqlDbType = SqlDbType.NVarChar }); } if (iId > 0) { sql += $" and InstituteId = {iId}"; } if (pid > 0) { sql += $" and ProfessionId = {pid}"; } if (isUnder == !isPost) { if (isPost) { sql += $" and StudentType = 1"; } if (isUnder) { sql += $" and StudentType = 0"; } } if (grade > 2015) { sql += $" and Grade = {grade}"; } int pageSize = 10; // ReSharper disable once CoVariantArrayConversion int dataCount = _context.VStudentMaps.FromSql(sql, parameters.ToArray()).Count(); int pageCount = dataCount / pageSize; int lastCount = dataCount % pageSize; if (lastCount > 0) { pageCount++; } if (index > pageCount || index <= 0) { return(Json(new { isOk = true, lineCount = 0, pageCount = 1, //总共是多少页 pageNowIndex = 1, //当前是第几页 size = pageSize })); } // ReSharper disable once CoVariantArrayConversion var items = _context.VStudentMaps.FromSql(sql, parameters.ToArray()).OrderBy(item => item.InstituteId) .ThenBy(item => item.ProfessionId) .Skip((index - 1) * pageSize).Take(pageSize).Select(val => new { instituteName = val.InstituteName, professionName = $"{val.ProfessionName}" + (val.ProfessionType == ProfessionType.UnderGraduate ? "[本科生]" : "[研究生]"), professionType = val.ProfessionType, studentId = val.StudentId, studentName = val.StudentName, grade = val.Grade, phone = val.Phone, birthDate = _logger.FormatDateShortLocal(val.BirthDate), sex = val.Sex == true?"男":"女", studentType = val.StudentType == StudentType.UnderGraduate? "本科生":"研究生", isPassExam = val.IsPassExam? "通过":"未通过", maxExamScore = val.MaxExamScore, maxExamCount = val.MaxExamCount, professionId = val.ProfessionId, email = val.Email, idNumber = val.IDNumber }).ToList(); return(Json(new { isOk = true, lineCount = dataCount, PageCount = pageCount, //总共是多少页 pageNowIndex = index, //当前是第几页 Items = items, size = pageSize })); } else { return(Json(new { isOk = false, message = $"参数错误,传递了不符合规定的参数" })); } }