Я пытаюсь заставить кнопку инициировать загрузку из хранилища BLOB-объектов для моего пользователя. Однако при нажатии кнопки загрузка никогда не начинается, она висит на панели загрузки. Смотрите мое событие обратного вызова ниже. Тип 'Blob' - это просто некоторый класс-оболочка в кодовой базе для всех обычных azure функций BLOB-объектов в. net. Кажется, что все работает нормально в событии, когда проходит через него, так как в HTTP-ответе правильно строится с правильным файлом, так что я думаю, что это может быть проблемой жизненного цикла? но я все еще могу понять, почему это так? пожалуйста, помогите мне!
protected void DownloadFile_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)
{
var blobStorageId = gDownloads.GetRowValues(e.VisibleIndex, "BlobStorageId");
var azureConnectionString = ConfigurationManager.ConnectionStrings("AzureStorageConnectionString").ConnectionString;
Blob bs = new Blob(azureConnectionString, kStorageContainer, kStorageFolder);
var blobItem = bs.DownloadAnyExtension(blobStorageId.ToString).FirstOrDefault();
MemoryStream ms = new MemoryStream();
blobItem.DownloadToStream(ms);
var resultStream = ms.ToArray();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = blobItem.ContentType;
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + blobItem.FileName.ToString);
HttpContext.Current.Response.AddHeader("content-length", blobItem.GetLength.ToString);
HttpContext.Current.Response.BinaryWrite(resultStream);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
ms.Close();
RefreshGrid();
}