【发布时间】:2018-08-11 09:20:19
【问题描述】:
我有带有以下控制器的 .NET Core Web 应用程序:
[HttpPost]
public async Task<IActionResult> Update(StudentDetailsViewModel vm)
{
var tokenNo = HttpContext.Session.GetString("Token");
vm.ID = Convert.ToInt32(HttpContext.Session.GetString("StudentId"));
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenNo);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var putStudentUrl = _appSettings.Value.Apis.GSRTCApi.Url + _appSettings.Value.Apis.GSRTCApi.StudentsEndpoint + vm.ID;
var settings = new JsonSerializerSettings();
var stringData = JsonConvert.SerializeObject(vm);
var contentData = new StringContent(stringData, Encoding.UTF8, "application/json");
var response = await client.PutAsync(putStudentUrl, contentData); // contentData);
return RedirectToAction("Index", "Home");
}
控制器调用我的 Web API 并且一切正常,直到我通过我的 html 表单上传文件。发生这种情况时,会在客户端的 StudentDetailsViewModel 的 IFormFile 属性中获取文件,但在进行 API 调用时,整个对象为空。 API 控制器是:
[HttpPut("{id}")]
public async Task<IActionResult> Put(int? id, [FromBody]StudentViewModel student)
{
// API operations here
}
我怀疑我没有正确序列化 StudentDetailsViewModel 对象,因为我有一个属性 IFormFile,它是一个接口。但是,我不确定我需要如何自定义 Json.Newsoft 对象。
【问题讨论】:
-
包含模型并调用JS。
-
我没有JS代码只是一个带有asp标签的表单
标签: rest api .net-core asp.net-core-2.0