Веб-API - Как опубликовать объект, который содержит файл - PullRequest
0 голосов
/ 09 июня 2019

Мне интересно, может ли кто-нибудь помочь, мои знания довольно скудны, когда дело доходит до webapi!.

  • У меня есть веб-страница (ASP.net MVC), которая позволяет пользователю загружать файлы.файл (HttpPostedFileBase)
  • Мой контроллер должен затем создать объект и отправить объект (с файлом) во внешний API (для сохранения файла)

У меня проблема в том, что я не уверен, как правильно разместить объект в API?

У меня есть несколько статей в Интернете, но я до сих пор не понимаю:(

Это то, что я сделал до сих пор:

 public class MediaModel
    {
        [Required]
        public string  AccountId{ get; set; }
        [Required]
        public string EntityId { get; set; }

        public HttpPostedFileBase Image { get; set; }
    }

Контроллер

[HttpPost]
  [Authorize]
  public async Task<ActionResult> Edit(ViewModels.Client client)
  {

    var media = new MediaModel()
      {
        EntityId = client.Id,
        Image = client.Photo,
        AccountId = client.AccountId
       };

     string apiUrl = "http://localhost:11436/api/Client/Media/Upload";
     using (HttpClient client = new HttpClient())
       {
         client.BaseAddress = new Uri(apiUrl);
         // !!! This section is what i'm having difficulty with !!!
         var jsonMedia = JsonConvert.SerializeObject(media);
         var c = new StringContent(jsonMedia, Encoding.UTF8,"application/json");
         HttpResponseMessage response = await client.PostAsync(apiUrl, c);
            if (response.IsSuccessStatusCode)
            {
             //do more
            }
       }

  }

API

[Route("Upload")]
[HttpPost]
    public async Task<IHttpActionResult> Upload(MediaModel media)
    {
      //Read model(and do stuff)

    }

Пример того, что я делаю неправильно, будет очень признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...