首页 / 问答 / ASP.NET Core Web API应用程序开发中如何在控制器同时接收上传的多个文件和JSON数据?

ASP.NET Core Web API应用程序开发中如何在控制器同时接收上传的多个文件和JSON数据?

0

在ASP.NET Core Web API应用程序编程开发中,如何在控制器中同时接收客户端上传的多个文件和JSON数据呢?

现在可以通过如下的方式成功接收多个上传的文件:

public async Task<IActionResult> Upload(IList<IFormFile> files)

也可以通过绑定实体的方式([FromBody])接收JSON数据,如下:

public void Post([FromBody]SomeObject value)

那么,现在如何在一个接口中实现同时接收多个上传文件以及JSON数据呢?

回复 [×]
提交评论
请输入评论内容

4 个回答

  • 0

    在控制器的操作方法(Action)中使用ModelBinderAttribute特性来标记动态的JSON数据,这样你可以不用定义特定的实体类来绑定JSON数据,具体的代码如下示例:

    JsonModelBinder的实现代码如下:

    CURL模拟代码如下:

    Rector的个人主页

    Rector

    2020-01-14 回答

    • 0

      由于在ASP.NET Core中没有内置的实现方法,所以我们需要自定义ModelBinder来实现同时接收多个文件及JSON数据。

      首先,定义一个IJsonAttribute.cs接口,如下:

      再定义一个FromJsonAttribute.cs类并实现IJsonAttribute.cs,如下:

      接着,创建一个JsonModelBinderProvider.cs类,如下:

      最后,创建一个sonModelBinder.cs,如下:

      使用示例如下:

      Rector的个人主页

      Rector

      2020-01-14 回答

      • 0

        如果是上传单个文件和JSON数据,则可以直接在控制器方法中使用[FromForm]特性和IFormFile类型绑定,如下:

        Rector的个人主页

        Rector

        2020-01-14 回答

        • 0

          补充一个基于.NET 5的JsonModelBinder,代码如下:

          Rector的个人主页

          Rector

          2021-11-15 回答

          我来回答