How to send multipart/form-data to asp.net core web api?

I'm trying to send a image and textfields to a api endpont but i'm reciving "Unsupported content type 'multipart/form-data; boundary=---------------------------81801171514357" This is a ASP.NET Core 2.1 Web api.

I have this:

[HttpPost("/api/account"), Authorize]
public void SaveUser(UserModel info)

And my model:

    [JsonProperty(PropertyName = "avatar")]
    [DataType(DataType.Upload)]
    public IFormFile Avatar { get; set; }
[JsonProperty(PropertyName = "name")]
[DataType(DataType.Text)]
public string Name { get; set; }

Then i use axios:

    var formData = new FormData();
formData.append(“avatar”, imageFile);
formData.append(“name”, name);
axios.post(“/api/account”, formData);

I expected this method to run, not throw an exception. But how?

I have tried to add:

[Consumes(“application/json”, “multipart/form-data”)]

But no success…

Then i tried:

[HttpPost(“/api/account”), Authorize]
public void SaveUser([FromForm]UserModel info)

The method runs, but the properties is empty on info object :(

#c-sharp #asp.net

2 Likes307.80 GEEK