使用 POST 来分页 asp.net-mvc 页面的最佳方式

问题描述 投票:0回答:2

我有一个操作方法,它在表单的 POST 请求后返回 PagedList<>。
我想在此页面添加分页,但所有分页场景似乎仅适用于 GET 请求。

目前添加分页控件的唯一方法是添加一堆带有一个按钮的表单来导航页面。这看起来很丑(所有表单按钮),并且会产生大量开销,因为每个表单都需要一堆隐藏字段(大约 10 个)来传输所需的参数。

是否有一种简洁的方法可以向 GET 请求添加大约 12 个可选参数? 或者也许有更好的方法?

asp.net-mvc pagination
2个回答
1
投票

每个分页按钮都有一个唯一的值,您需要与其余表单值一起提交。所以你真的只需要这样的东西:

function GoToPage(pageNumber)
{
    // submit form along with pageNumber

    return false;
}

<a href="javascript:GoToPage(1);">1</a>
<a href="javascript:GoToPage(2);">2</a>
<a href="javascript:GoToPage(3);">3</a>

0
投票

向 GET 请求添加许多可选参数的方法是使用查询字符串参数。使控制器操作的参数可以为空,如果用户提供它们,MVC 框架将使用查询字符串参数填充它们,否则将它们保留为空。

我不认为使用 POST 进行分页通常是合适的。 POST 旨在更新服务器资源。分页不能做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.