小编Bla*_*ler的帖子

如何将IFormFile作为ViewModel对象的一部分发送到Web API

我有带有以下控制器的.NET Core Web App:

    [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");
    }
Run Code Online (Sandbox Code Playgroud)

控制器调用我的Web API,一切正常,直到我通过html表单上传文件。发生这种情况时,将在客户端的StudentDetailsViewModel的IFormFile属性中拾取该文件,但是当进行API调用时,整个对象为null。API控制器是:

[HttpPut("{id}")]
public async Task<IActionResult> Put(int? id, [FromBody]StudentViewModel student)
{
    // API …
Run Code Online (Sandbox Code Playgroud)

api rest .net-core asp.net-core-2.0

2
推荐指数
1
解决办法
3655
查看次数

标签 统计

.net-core ×1

api ×1

asp.net-core-2.0 ×1

rest ×1