如何通过 API 在 .NET MVC 的下拉列表中获取无限记录?

Posted

技术标签:

【中文标题】如何通过 API 在 .NET MVC 的下拉列表中获取无限记录?【英文标题】:How can I fetch unlimited records in dropdown in .NET MVC through API? 【发布时间】:2022-01-13 08:18:09 【问题描述】:

我已经尝试在表中添加 10000 条记录,它可以正常工作,并且能够添加 fetch 而不会出现任何错误。但是当试图在同一个表中添加超过 10000 条记录时,它会给出服务超时错误。由于服务本身正在引发超时错误。我不想增加 web.config 中的超时时间。

我使用 Oracle SQL 开发者作为数据库引擎和实体框架的默认连接字符串。

我试图在控制器中添加这段代码,但它不起作用。

var result = this.Json(model, JsonRequestBehavior.AllowGet);
result.MaxJsonLength = int.MaxValue;
System.Web.HttpContext.Current.Server.ScriptTimeout = 300; 

This is the error i am getting while trying to add more than 10000 records

【问题讨论】:

也许这只是糟糕的设计。您希望您的用户如何在 10000 个项目之间进行选择?让他们输入几个字符,然后进行搜索。 我同意 Palle 的观点 - 在列表中显示许多记录是一个糟糕的主意。假设最终用户每秒可以滚动浏览 10 条记录。滚动查看10_000 项目列表需要将近 17 分钟。让用户搜索他们想要的项目。 我同意 Palle 的观点,这可能不是一个好主意,但您可以将您的连接字符串添加到问题中吗?您使用的是什么数据库引擎? 我正在使用 Oracle SQL 开发人员@AAP 【参考方案1】:

正如您在评论中所说,您使用的是 Oracle 数据库。您收到的错误是超时,您使用的任何数据库提供程序都将默认为 X。

如果您使用的是 .NET Framework 4.8,此链接应该帮助:

https://docs.microsoft.com/en-us/dotnet/api/system.data.oracleclient.oracleconnection.connectiontimeout?view=netframework-4.8

另一个可能有帮助的链接:

How can I keep Oracle SQL Developer from closing the DB connection?

这是来自 Oracle 的官方文档:

https://docs.oracle.com/en/database/oracle/oracle-data-access-components/19.3.2/odpnt/ConnectionConnectionTimeout.html

【讨论】:

以上是关于如何通过 API 在 .NET MVC 的下拉列表中获取无限记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过在 ASP.NET MVC 框架中调用 ajax 来显示 kendoDropDownList?

如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型

如何从现有 SQL DB ASP.Net MVC 4 在下拉列表中填充数据

ASP.NET MVC 视图需要将选定的下拉列表和日历日期传递给模型

如何从 ASP.NET MVC 中的枚举创建下拉列表? [复制]

如何在 C# 中为枚举值添加描述以与 ASP.NET MVC 中的下拉列表一起使用? [复制]