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

4

我遇到了一个奇怪的错误(其实也不太奇怪,我猜测是因为一些我可能不知道的最大长度限制)。我正在开发一个自定义服务器控件,用于为员工呈现自定义搜索服务。当员工被成功搜索时,我从WCF服务中以json格式获取他们的整个对象(列表),将字符串保存在隐藏字段中,并进行回发以便在代码后台获取json字符串并反序列化为对象。现在,当搜索条件开始获取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字符串保存在多个隐藏字段中,每个字段中有1000条记录。但是,错误仍然不断出现。这告诉我表单存在某种最大大小限制。我能否得到此问题的解决方案,或者我必须使用向后代码发送ID并从服务中获取对象?实际上,服务URL应该是动态的,主机应用程序会提供它,因此我正在尝试在C#级别上不引入任何服务绑定(你明白我的意思,我想)。


我建议这不是最佳选择。当搜索某物时,您真的想展示超过x(比如100)个人吗?任何超过这个数量的应该被分页管理,因为用户不会浏览超过5000个以上的结果! - Belogix
不好意思,你误解了我的意思。我指的是在搜索条件中选择所有符合条件但不在页面上的员工的选项(分页通过向下滚动实现),在这种情况下,我必须将所有已选择的员工都放在自定义控件公开的公共属性中。 - Taha Rehman Siddiqui
2个回答

5

根据文档,ASP.NET默认的最大请求大小为4MB。如果您认为会达到此限制,请在<system.web>标签内添加以下内容来增加它:

<httpRuntime maxRequestLength="x">

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


1

当我传递大量数据进行映射时,我遇到了这个问题 - 数据在过大后丢失。我对web.config做了一些更改:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接