1

我有以下我想通过 GET 调用的 DTO:

    [Route("/documents")]
    public class Documents : IReturn<DocumentsResult>
    {
        public string[] IDs { get; set; }
    }

一个简单的Service

    public DocumentsResult Get(Documents doc)
    {
       //implementation not relevant
    }

尝试使用JsonServiceClient.Get()方法调用多个 ID 时,我得到 BadRequest,因为查询字符串太长。

如何确保 IDs 属性是从 FormData 绑定的?

4

1 回答 1

2

GET请求只能使用QueryString,因此没有 FormData。您遇到的限制可能是对 queryStrings 的 IIS/ASP.NET 限制(ServiceStack 中没有明确的使用限制)。因此,您可以尝试在 Web.config 中增加对 GET 请求的限制:

<system.web>
    <httpRuntime maxUrlLength="10999" maxQueryStringLength="2097151" />
    ...
</system.web>

否则,您的解决方案是使用POST以便通过请求正文发送请求,或者使用GET将请求批处理成更易于管理的块,这些块不超过2048 chars 的默认限制

于 2013-10-25T18:19:49.493 回答