Как отладить контроллер asp.net на заказ объекта класса, который передается как JSON - PullRequest
0 голосов
/ 27 августа 2018

Как можно отладить следующий код контроллера, чтобы проверить, что заполняется в переменной 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);
    });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...