我正在尝试允许用户编辑和保存用户角色。在这些角色中,允许对它们具有CRUD权限的对象有不同类型。
当我通过iron-ajax
将数据从聚合物传递到控制器时,它会正确传递,除非其中有许多设置了CRUD权限的对象。这些对象及其CRUD权限将作为JSON字符串发送到controller方法中。
少量(例如30个具有CRUD和2个其他权限的项目)可以成功运行。控制器正确接收到请求,并且角色已保存。
但是,一旦我尝试大量通过(例如100个具有CRUD和2个其他权限的项目),就会发生以下错误:
我尝试过以下组合:在handle-as
定义中设置content-type
和iron-ajax
,在ajax调用中使用params
vs body
,并具有具有和不具有[HttpPost]
属性的控制器方法。
Iron-Ajax代码:
<iron-ajax id="saveRole"
url="[[_getUrl('Roles/SaveRole')]]"
method="POST"
handle-as="json"
on-response="_handleSavedRole"
on-error="_handleSavedRoleError">
</iron-ajax>
调用函数:
this.$.saveRole.params = { id: this.data.Id, name: this.data.Name, unitPermissions: JSON.stringify(this.data.UnitPermissions), projectPermissions: JSON.stringify(this.data.ProjectPermissions) };
this.$.saveRole.generateRequest();
控制器方法签名:
[HttpPost]
public ActionResult SaveRole(String id, String name, String unitPermissions, String projectPermissions)
编辑:
使用How to configure the web.config to allow requests of any length上可接受的答案,正在抛出的错误已更改为以下内容:
编辑:
在另一台计算机上,对于某些中等大小的请求(75到100之间),我得到了不同的错误:
我尝试在我的web.config文件中使用以下内容修复它,但是它不起作用。
<requestLimits maxAllowedContentLength="1073741824" maxQueryString="2097151"/>