在ServiceStack中使用GET方法时如何从FormData绑定字符串数组?

时间:2013-10-25 13:07:41

标签: servicestack

我想通过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,因为查询字符串太长。

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

1 个答案:

答案 0 :(得分:2)

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

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

否则,您的解决方案是使用 POST ,以便通过请求正文发送请求,或使用 GET 将请求批处理为更易于管理的块超过default limit of 2048 chars