【问题标题】:How to pass a file and json object from a postman to asp.net core webapi如何将文件和 json 对象从邮递员传递到 asp.net 核心 webapi
【发布时间】:2019-08-04 18:56:23
【问题描述】:
我有一个带有以下签名的 post 方法,
[HttpPost]
public ActionResult SavePriorAuthorization(MainPriorAuthorization priorAuthorization, IFormFile 文件)
现在我想从邮递员那里传递对象和文件。我尝试了以下不起作用的选项。
这会报错,System.ArgumentNullException: Value cannot be null.Parameter name: header
标题类型:multipart/form-data
任何帮助将不胜感激。
【问题讨论】:
标签:
c#
asp.net-core
postman
asp.net-core-webapi
asp.net-core-2.1
【解决方案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
}
然后在我的邮递员中它看起来像这样:
希望对你有帮助
【解决方案2】:
尝试更改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)
{ }
邮差截图