如何将文件和JSON对象从Postman传递到ASP.NET Core WebAPI

3

我有一个带以下签名的post方法:

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

现在我想从postman传递包含文件的对象。我尝试了以下选项,但不起作用。

enter image description here

这会导致错误:System.ArgumentNullException: Value cannot be null.Parameter name: header

Header类型:multipart/form-data

感谢您的任何帮助。

2个回答

1

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

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

然后创建一个带有 [FromForm] 属性的操作,以便它知道需要映射的位置:
[HttpPost]
public void Post([FromForm]MainPriorAuthorizationViewModel priorAuthorization)
{
   //do logic
}

然后在我的Postman中看起来像这样:

enter image description here

希望这有所帮助。

1
尝试更改MainPriorAuthorization模型中键的设置,您可以直接将模型的属性名称设置为Postman中的键。
以下是我测试并成功运行的示例代码:
Guest Model
 public class Guest
{
    public int Id { get; set; }
    public string Name { get; set; }
}

在操作中的参数上添加[FromForm]属性。
[HttpPost]
    public void SaveGuest([FromForm]Guest guest,IFormFile file)
    {  }

Postman的屏幕截图 输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接