Есть много статей, которые Ive читал об этом, но я havnt нашел решение.Показать изображение в новой вкладке с помощью MVC 4 Actionresult
Ситуация проста:
- У меня есть гиперссылку изображения.
- Когда щелкнуто, я хочу, чтобы связанный файл открывался на новой вкладке.
- Файл может быть pdf (application/pdf) или Tif (image/tif).
У меня есть работа с файлами PDF, но если файл является изображением TIF, браузер хочет загрузить файл, а не открывать его на новой вкладке.
вот мой код контроллера:
[Authorize]
public ActionResult GetFile(string fileName)
{
string UploadDirectory = System.Configuration.ConfigurationManager.AppSettings["DealerApplicationFilePath"];
string fileExtension = Path.GetExtension(fileName);
string mimeType = "application/unknown";
switch (fileExtension)
{
case ".pdf":
mimeType = "application/pdf";
break;
case ".tif":
mimeType = "image/tif";
break;
}
var fileStream = new FileStream(UploadDirectory + fileName, FileMode.Open, FileAccess.Read);
var fsResult = new FileStreamResult(fileStream, mimeType);
//Response.AppendHeader("Content-Disposition", "inline"); //Content-Disposition doesnt help.
return fsResult;
}
Вот мой CHTML код:
Html.DevExpress().HyperLink(settingsBtn =>
{
settingsBtn.Name = "cb_" + c.KeyValue.ToString();
settingsBtn.Properties.Target = "_blank";
switch (Path.GetExtension(DataBinder.Eval(c.DataItem, "FileName").ToString()))
{
case ".pdf":
settingsBtn.Properties.ImageUrl = "~/Content/GridImages/FileType_PDF.png";
break;
case ".tif":
settingsBtn.Properties.ImageUrl = "~/Content/GridImages/FileType_TIF.png";
break;
}
//This causes a download popup.
settingsBtn.NavigateUrl = Url.Action("GetFile", "Account", new { fileName = "ATM-311.tif" });
//This opens in a new tab.
//settingsBtn.NavigateUrl = Url.Action("GetFile", "Account", new { fileName = "ATM-311.pdf" });
}).GetHtml();
и вот фактический HTML тег, который получает генерируется :
<a class="dxeHyperlink_Metropolis" id="cb_311" href="/Account/GetFile?fileName=ATM-311.tif" target="_blank"><img src="/Content/GridImages/FileType_TIF.png" alt=""></a>
Любая помощь будет оценена :)
Может быть, это может помочь вам: http://stackoverflow.com/a/15789753/4730201 –
Является ли это поведение соответствует во всех браузерах или делает его открытым в новой вкладке другие в некоторых браузерах, но не? –
@ stephen.vakil - это согласовано в браузерах (то есть, firefox и chrome) – Roman