如何将文件和 json object 从邮​​递员传递到 asp.net 核心 webapi

How to pass a file and json object from a postman to asp.net core webapi

我有一个具有以下签名的 post 方法,

[HttpPost] public ActionResult SavePriorAuthorization(MainPriorAuthorization priorAuthorization, IFormFile 文件)

现在我想将 object 连同来自 post 人的文件一起传递。我尝试了以下不起作用的选项。

这会报错,System.ArgumentNullException: Value cannot be null.Parameter name: header

Header 类型:multipart/form-data

如有任何帮助,我们将不胜感激。

我通常做的是像这样创建一个 ViewModel:

public class MainPriorAuthorizationViewModel
{   
    public IFormFile File { get; set; }
    public string TestName { get; set; }
}

然后创建一个具有 [FromForm] 属性的操作,以便它知道需要映射的位置:

[HttpPost]
public void Post([FromForm]MainPriorAuthorizationViewModel priorAuthorization)
{
   //do logic
}

然后在我的邮递员中它看起来像这样:

希望对您有所帮助

尝试更改MainPriorAuthorization模型中key的设置,在Postman中可以直接将模型的属性名称设置为key。

以下是我测试并运行良好的示例代码:

客座模特

 public class Guest
{
    public int Id { get; set; }
    public string Name { get; set; }
}

[FromForm]属性添加到操作中的参数

[HttpPost]
    public void SaveGuest([FromForm]Guest guest,IFormFile file)
    {  }

邮递员截图