Видимо, я не понимаю, как использовать метод ContinueWith. Моя цель - выполнить задачу и по завершении вернуть сообщение.
Вот мой код:
public string UploadFile()
{
if (Request.Content.IsMimeMultipartContent())
{
//Save file
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);
string filename = "Not set";
task.ContinueWith(o =>
{
//File name
filename = provider.BodyPartFileNames.First().Value;
}, TaskScheduler.FromCurrentSynchronizationContext());
return filename;
}
else
{
return "Invalid.";
}
}
Переменная "имя файла" всегда возвращает "Не установлено". Кажется, что код в методе ContinueWith никогда не вызывается. (Он вызывается, если я отлаживаю его построчно в VS.)
Этот метод вызывается в моем контроллере веб-API ASP.NET/Ajax POST.
Что я здесь делаю не так?