javascript - ASP.NET : Passing custom list properties via JSON to JavaScript

标签 javascript jquery asp.net-mvc json

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

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

我想通过 JSON 将此列表传递到 View :

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

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

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
        }
    });
}

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

最佳答案

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

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

关于javascript - ASP.NET : Passing custom list properties via JSON to JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349757/

相关文章:

asp.net-mvc - EntityType 'ApplicantPosition' 没有定义键

javascript - 在 ASP.NET MVC 中防止表单双重发布的可能方法是什么?

javascript - 如何在 JavaScript 中复制到剪贴板?

javascript - 如何删除 和 <br> 使用 javascript 或 jQuery?

javascript - 如何仅在首页应用此样式?

javascript - 如何在 CSS 中编写我的 jquery 函数以实现响应?

javascript - 关闭图标上的汉堡菜单,onclick

javascript - 如何在php echo中添加弹出窗口?

javascript - Jquery Clone() 并替换文本

c# - 这些部分中的哪一个进入模型与 Controller ?