Как можно отладить следующий код контроллера, чтобы проверить, что заполняется в переменной pagedData
? pagedData
должен иметь тип pagedData
, так как это вывод Pagination.PagedResult
. pagedData
должен содержать список и два целочисленных значения. Как я могу вернуть содержимое pagedData
на консоль после его заполнения? Я не могу отладить функцию javascript, так как она не входит в раздел getJSON
, похоже, проблема в контроллере. В идеале я хочу видеть JSON, который отправляется обратно из контроллера в представление.
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using CogntionCM.Models;
using CogntionCM.Helper;
namespace CCM.Controllers
{
public class RetailersController : Controller
{
private MCDEntities context = new MCDEntities();
[HttpGet]
public ActionResult Index()
{
return View();
}
public ActionResult GetPagedData(int pageNumber = 1, int pageSize = 20)
{
List<Retailer> listData = context.Retailers.ToList();
var pagedData = Pagination.PagedResult(listData, pageNumber, pageSize);
return Json(pagedData, JsonRequestBehavior.AllowGet);
}
}
}
Контроллер использует два Helpers
следующим образом:
PagedData.cs
namespace CCM.Helper
{
public class PagedData<T> where T : class
{
public IEnumerable<T> Data { get; set; }
public int TotalPages { get; set; }
public int CurrentPage { get; set; }
}
}
Pagination.cs
namespace CCM.Helper
{
public static class Pagination
{
public static PagedData<T> PagedResult<T>(this List<T> list, int PageNumber, int PageSize) where T : class
{
var result = new PagedData<T>();
result.Data = list.Skip(PageSize * (PageNumber - 1)).Take(PageSize).ToList();
result.TotalPages = Convert.ToInt32(Math.Ceiling((double)list.Count() / PageSize));
result.CurrentPage = PageNumber;
return result;
}
}
}
Ниже приведена модель розничной торговли:
namespace CCM.Models
{
using System;
using System.Collections.Generic;
public class Retailer
{
public int RetailerID { get; set; }
public string RetailerCode { get; set; }
public string Name { get; set; }
...lots more columns...
public virtual Retailer_Statuses Retailer_Statuses { get; set; }
public virtual Retailer_Types Retailer_Types { get; set; }
}
}
Следующий javascript находится на странице розничной торговли / индекса:
$(document).ready(function () {
GetPageData(1, 20);
});
function GetPageData(pageNum, pageSize) {
$("#tblData").empty();
$("#paged").empty();;
$.getJSON("/Retailers/Index/GetPagedData", { pageNumber: pageNum, pageSize: pageSize }, function (response) {
var rowData = "";
for (var i = 0; i < response.Data.length; i++) {
rowData = rowData + '<tr><td>' + response.Data[i].Name + '</td><td>' + response.Data[i].RetailerCode + '</td></tr>';
}
$("#tblData").append(rowData);
PagingTemplate(response.TotalPages, response.CurrentPage);
});
};