Мне интересно, может ли кто-нибудь помочь, мои знания довольно скудны, когда дело доходит до 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)
}
Пример того, что я делаю неправильно, будет очень признателен.