请求 DTO 未填充包含 "multipart/form-data" 的 PATCH 请求

Request DTO not getting populated with PATCH request containing "multipart/form-data"

我有以下 patch 请求:

curl --location --request PATCH 'http://localhost:8888/image' \
--form 'Width=1500' \
--form 'Height=1000' \
--form 'ID=5f3c03457118797a3a7a6f8c' \
--form 'File=@/D:/IMG_20190901_144155.jpg'

我的请求 DTO 如下所示:

    [Route("/image")]
    public class Request : IReturnVoid
    {
        public string ID { get; set; }
        public int Width { get; set; }
        public int Height { get; set; }
    }

服务方法如下所示:

    public class ImageService : Service
    {
        public async Task Patch(Request req)
        {
            var id = req.ID;
            var height = req.Height;
            var width = req.Width;

            await Task.Delay(100);
        }
    }

我遇到的问题是服务堆栈未填充请求 DTO。

如果我在调试 Servicestack.Web.IRequest.FormData 属性 时放置断点并检查,它会显示以下异常:

'((ServiceStack.Host.NetCore.NetCoreRequest)Request).FormData' threw an exception of type 'System.IO.InvalidDataException'

但是,如果我只是将其更改为 POST 请求而不是 PATCH 一切正常。

这是 servicestack 中的错误还是我在这里遗漏了一些重要的东西?

如果你需要一个复现项目,你可以找到它here

这是 servicestack 中的一个错误,现在已通过 this 提交解决。