我确信有人遇到了同样的问题,但我没有找到任何东西。我发送发布请求来获取文件,并得到此模型作为响应: public class ResponseWithFile{ public bool IsSuccessful { get; set; } public List<int> Errors { get; set; } public IFormFile File { get; set; }}我从控制器得到这个响应: [Route("get")] [HttpPost] public async Task<IActionResult> GetFile([FromBody]GetFileDto request) { var result = _fileService.GetFile(request.Id, request.ContentType); if (result.IsSuccessful) return Ok(result); return BadRequest(result); }响应是正确的,我可以将其读入字符串,但是当我尝试将其反序列化为响应对象时,出现错误: HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); string respString = string.Empty; using (var sr = new StreamReader(resp.GetResponseStream())) { respString = sr.ReadToEnd(); } var serResp = (ResponseWithFile)JsonConvert.DeserializeObject(respString);//error hereInvalidCastException:无法将“Newtonsoft.Json.Linq.JObject”类型的对象转换为“ServiceModels.ResponseWithFile”类型我确定这是因为 IFormFile 对象。我究竟做错了什么?
1 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
尝试这个:
var serResp = JsonConvert.DeserializeObject<ResponseWithFile>(respString);
或者
var serResp = (ResponseWithFile)JsonConvert.DeserializeObject(respString, typeof(ResponseWithFile));
- 1 回答
- 0 关注
- 67 浏览
添加回答
举报
0/150
提交
取消