ASP.net中的隐藏字段长度有限制吗

本文关键字:段长度 有限制 字段 隐藏 net ASP | 更新日期: 2023-09-27 18:06:01

我遇到了一个奇怪的错误(不是很奇怪,我想是因为一些我可能不知道的最大长度限制(。我正在开发一个自定义服务器控件,它为员工提供自定义搜索服务。当成功搜索到员工时,我会以json的形式从WCF服务中获取他们的整个对象(List(,将字符串保存在一个隐藏字段中,并回发代码以获取json字符串并反序列化为对象。现在,多达2000个对象,它可以完美地工作,但当搜索条件开始提取2000以上时,开始出现以下错误

Uncaught Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 0 

我也调试了代码,但c代码甚至没有捕捉到任何调用。我还尝试将对象的json字符串保存在多个隐藏字段中,每个字段在json字符串中有1000条记录。但是,错误仍然不断出现。这告诉我对表单的最大大小有某种限制。我能为这个问题找到任何解决方案吗?或者我必须向代码后台发送Id并从那里的服务获取对象吗?实际上,服务url应该是动态的,主机应用程序会提供它,所以我尽量不在C#级别引入任何服务绑定(我想你已经明白了(。

ASP.net中的隐藏字段长度有限制吗

ASP.NET确实有一个最大请求大小——根据文档,默认情况下为4MB。如果你认为你可能达到了这个限制,你可以通过在<system.web>标签内的web.config文件中添加以下内容来增加它:

<httpRuntime maxRequestLength="x">

其中x是所需的最大值,单位为千字节。例如,10240就是10MB。

我在来回传递大量数据进行映射时遇到了这个问题——数据太大后,我会丢失数据。我对web.config进行了一些更改:

 <appSettings>    
     <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
     <add key="aspnet:MaxJsonDeserializerMembers" value="5000" />
</appSettings>