MultipartFormDataFormatter或者ApiMultipartFormDataFormatter传数组问题

介绍

好吧,在.net webapi使用这两个插件的时候,肯定是文件上传咯。

那么请求格式肯定是form-data格式。

这个时候我在用传List<decimal>数组给接口,但是我调试的时候发现整个实体参数null了。

按理说不应该,后面我又用List<string>做测试了,发现是可以的拿到参数的。可能有人会质疑我的传参方式是不是有问题

我可以很明确的表示是没有问题的,用postman调试传数组 字段名[0]

 

 就这样。

我想是不是int、decimal等常规值类型和string类型的区别。因为int是值类型,string其实是特殊的引用类型。

后面我又想了下,插件中HttpFile这个类,那我是不是也可以像它一样的方式来传值呢

/// <summary>
    /// 会失败的情况
    /// </summary>
    public class TestDto
    {

        public List<decimal> Money { get; set; }
        public List<HttpFile> Imgs { get; set; }
        
    }

🆗,先看看会失败的情况。

然后顺着思路去解决它

    /// <summary>
    /// 解决方法
    /// </summary>
    public class TestDto
    {

        public List<MoneyDto> Money { get; set; }
        public List<HttpFile> Imgs { get; set; }

        public class MoneyDto
        {
            public decimal Id { get; set; }
        }

    }

我在testDto中在创建一个类。 然后把Money类型改为 List<MoneyDto>

这样的就能解决,插件解析不了参数为null的情况。

那么改成这样该怎么用postman传参数呢。

上图。。

 

 只需要在后面加上Id就行,如果是其他的字段就换成其他的字段。

posted @ 2020-07-13 11:41  飞天猪皮怪  阅读(538)  评论(0编辑  收藏  举报