Я не могу понять, как открыть PDF в новой вкладке Chrome.Следующий код работает в Internet Explorer, но не для Chrome.Я проверил настройку в Chrome и установил следующее:
Мой взгляд:
@Html.ActionLink("View", "OpenFileEncrypted", "Storage", new { fileNumber = item.accession_number, fileType = 2, openType = "NewTab" }, new { @class = "btn btn-primary ViewDownloadButton", @runat="server", @target = "_blank", @onclick = "javascript:clickView(" + item.accession_number + ")" })
Функция javascriptClickView устанавливает флажок на веб-странице.
Мой контроллер:
public ActionResult OpenFileEncrypted(int? fileNumber, int? fileType, string openType)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = GetContainer(blobClient, Convert.ToInt32(fileType));
KeyVaultKeyResolver cloudResolver = new KeyVaultKeyResolver(GetToken);
var fileName = Convert.ToString(fileNumber) + ".pdf";
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
BlobEncryptionPolicy policy = new BlobEncryptionPolicy(null, cloudResolver);
BlobRequestOptions options = new BlobRequestOptions() { EncryptionPolicy = policy };
var memStream = new MemoryStream();
blockBlob.DownloadToStream(memStream, null, options, null);
if (openType == null)
{
openType = "NewTab";
}
order_info OInfo = Ldb.order_info.Where(o => o.accession_number == fileNumber).FirstOrDefault();
switch (openType)
{
case "NewTab":
Response.AddHeader("Content-Disposition", "Inline; filename=" + fileName);
OInfo.ReportViewed = true;
break;
case "Download":
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
OInfo.ReportDownloaded = true;
break;
}
if (OInfo != null)
{
Ldb.Entry(OInfo).State = EntityState.Modified;
Ldb.SaveChanges();
}
return File(memStream.ToArray(), blockBlob.Properties.ContentType);
Работает в IE, но не в Chrome.Когда кнопка нажата, она открывает новую вкладку, затем открывает поле для загрузки с именем и выбирает папку, в которую загружается .pdf.
Что я делаю не так?