【发布时间】:2021-11-10 01:53:49
【问题描述】:
我有一个 ASP.NET Core 5 Web API,它使用 ADO.Net 使用存储过程与 SQL Server 数据库进行通信。此 API 在同一 Visual Studio 解决方案中的另一个 ASP.NET Core MVC 项目中使用。
对于 MVC 项目,对于从 Web API 项目接收到的显示结果处理分页、排序和过滤功能的最佳和最可靠的方法是什么?
全功能源码:https://github.com/krchome/WebAPICoreMVCClient
问候, 考希克
【问题讨论】:
-
我已经查看了您的代码并在下面发布了答案。我的回答更笼统。在您的特定情况下,您需要在 API 中编写更多方法来接收 API 控制器中的页面编号、排序键等参数,并将分页和排序的数据发送回客户端。同样在客户端应用程序中,更好的做法是编写一些 javascript(Jquery、React 或 Angular)并直接从 javascript 调用 API,而不是调用控制器和控制器调用 API。例如:c-sharpcorner.com/article/…
-
感谢您查看代码。但是,发布的文章 URL 没有显示 API 控制器将分页和排序数据发送回客户端,因此本质上对证明这一点没有多大用处。我的项目最初是为了演示一个客户端 MVC 应用程序如何有效地使用 Web API,并且它确实做到了。然而,由于我的社区的需求,他们现在期望这些功能能够锦上添花,我正在朝这个方向思考。您的建议让我考虑对 API 的设计进行重大更改。不能按原样分页、排序客户端吗?
-
哦,知道了,我发布的 URL 是为了展示我们如何从 Javascript 客户端消费。与您如何在服务器端进行分页/排序无关。当然,您可以在 MVC 应用程序中进行分页和排序,但我建议您在 Web API 中进行排序、分页等,而不是在客户端中进行,这可能非常低效。
-
好的,我明白了。你能发送一些代码示例来展示在 Web API 上做这些事情的方法吗?也是从 MVC 应用程序发送以获取所需响应的请求格式。我只想从 MVC 调用 API,不想走 Javascript 路径。
-
只需通过查询参数传递它们。更好的做法是通过查询参数传递分页、排序、过滤器等参数,以便对其进行书签、缓存等。localhost:64798/api/Customer?sort=name
标签: sorting filter pagination asp.net-core-mvc asp.net-core-webapi