我正在尝试将图像和文本字段发送到 API 端点,但收到了
Unsupported content type 'multipart/form-data; boundary=---------------------------81801171514357
这是一个 ASP.NET Core 2.1 Web API。我有这个:
[HttpPost("/api/account"), Authorize]
public void SaveUser(UserModel info)
还有我的模型: [JsonProperty(PropertyName = "avatar")]
[DataType(DataType.Upload)]
public IFormFile Avatar { get; set; }
[JsonProperty(PropertyName = "name")]
[DataType(DataType.Text)]
public string Name { get; set; }
然后我使用 axios : var formData = new FormData();
formData.append("avatar", imageFile);
formData.append("name", name);
axios.post("/api/account", formData);
我希望这个方法能运行,而不是抛出异常。但是如何?我试图添加:[Consumes("application/json", "multipart/form-data")]
但没有成功。然后我尝试:
[HttpPost("/api/account"), Authorize]
public void SaveUser([FromForm]UserModel info)
该方法运行,但信息对象上的属性为空:(更新:
解决方案,不要使用 JsonProperty PropertyName。使用变量名。
最佳答案
也许你应该尝试用 [FromForm]
装饰 Controller 输入和模型属性?
在此处查看更多信息:web api parameters binding .
在给定的示例中,您的 Controller 操作应如下所示:
[HttpPost("/api/account"), Authorize]
public void SaveUser([FromForm]UserModel info)
在模型中:
[FromForm(Name="avatar")]
public IFormFile Avatar { get; set; }
[FromForm(Name="name")]
public string Name { get; set; }
关于c# - 如何将多部分/表单数据发送到 ASP.NET Core Web API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54411250/