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

问题描述 投票:0回答:2

我有一个低于签名的帖子方法,

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

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

enter image description here

这给出了一个错误,System.ArgumentNullException:Value不能为null。参数名称:header

标题类型:multipart / form-data

任何帮助,将不胜感激。

c# asp.net-core postman asp.net-core-webapi asp.net-core-2.1
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
}

然后在我的邮递员看来这样:

enter image description here

希望这可以帮助


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的截图

© www.soinside.com 2019 - 2024. All rights reserved.