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

时间:2019-03-14 00:16:57

标签: c# asp.net-core postman asp.net-core-webapi asp.net-core-2.1

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

[HttpPost]  公共ActionResult SavePriorAuthorization(MainPriorAuthorization PriorAuthorization,IFormFile文件)

现在,我想将对象与邮递员的文件一起传递。我尝试了以下不起作用的选项。

enter image description here

这将导致错误, System.ArgumentNullException:值不能为空。参数名称:标头

标题类型:multipart / form-data

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分: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
}

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

enter image description here

希望这会有所帮助

答案 1 :(得分:1)

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

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

客人模型

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

[FromForm]属性添加到实际参数中

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

邮递员的屏幕截图 enter image description here