mrc*_*ode 15 c# asp.net asp.net-core asp.net-core-webapi
我正在尝试将图像和文本字段发送到 API 端点,但收到了
不支持的内容类型 'multipart/form-data; 边界=---------------------------81801171514357
这是一个 ASP.NET Core 2.1 Web API。我有这个:
[HttpPost("/api/account"), Authorize]
public void SaveUser(UserModel info)
Run Code Online (Sandbox Code Playgroud)
还有我的模型:
[JsonProperty(PropertyName = "avatar")]
[DataType(DataType.Upload)]
public IFormFile Avatar { get; set; }
[JsonProperty(PropertyName = "name")]
[DataType(DataType.Text)]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后我使用axios:
var formData = new FormData();
formData.append("avatar", imageFile);
formData.append("name", name);
axios.post("/api/account", formData);
Run Code Online (Sandbox Code Playgroud)
我希望这个方法能运行,而不是抛出异常。但是如何?我试图添加:
[Consumes("application/json", "multipart/form-data")]
Run Code Online (Sandbox Code Playgroud)
但没有成功。
然后我尝试:
[HttpPost("/api/account"), Authorize]
public void SaveUser([FromForm]UserModel info)
Run Code Online (Sandbox Code Playgroud)
该方法运行,但信息对象上的属性为空:(
更新: 解决方案,不要使用 JsonProperty PropertyName。使用变量名。
joo*_*tas 20
也许你应该尝试用[FromForm]
属性装饰控制器输入和模型?在此处查看更多信息:web api 参数绑定。
在给定的示例中,您的控制器操作应如下所示:
[HttpPost("/api/account"), Authorize]
public void SaveUser([FromForm]UserModel info)
Run Code Online (Sandbox Code Playgroud)
在模型中:
[FromForm(Name="avatar")]
public IFormFile Avatar { get; set; }
[FromForm(Name="name")]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25246 次 |
最近记录: |