如何将文件和 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)
{ }
邮递员截图
我有一个具有以下签名的 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)
{ }
邮递员截图