1

这是一个自定义列表(我创建用于分页我的结果):

public class PagedList<T> : List<T>
{
    public int PageIndex { get; set; }
    public bool HasNextPage { get; set; }
    // ...
}

这个列表我想通过 JSON 传递给视图:

[HttpPost]
public ActionResult StoreProducts(StoreDetailsViewModel model)
{
    PagedList<Product> products = _productRepository.GetAll();
    return Json(products);
}

在视图中,我想访问扩展列表的自定义属性,但它不起作用:

function getStoreProducts() {
    var form = $('#form');
    $.ajax({
        url: form.attr('action'),
        type: form.attr('method'),
        data: form.serialize(),
        success: function(result) {
            viewModel.products = result; // <-- success
            viewModel.hasNextPage = result.HasNextPage; // <-- fail, property is undefined
        }
    });
}

有人可以告诉我如何解决我的问题吗?

4

1 回答 1

1

PagedList 应该是它自己的类,上面有一个 List 属性,这是更简单的路线。否则,您需要为 PagedList 类编写一个自定义转换器,以便不序列化为数组,而是序列化为对象。

public class PagedList<T>
{
    public int PageIndex { get; set; }
    public bool HasNextPage { get; set; }
    public List<T> Items { get; set; }
    // ...
}
于 2013-03-12T01:02:10.920 回答