У меня есть pdf-файл в базе данных, который я загрузил в контроллер, и я хочу напрямую вернуться через return. File
return File(document.Data, document.ContentType);
Данные - это байтовый массив с ~ 76000 байтов. ContentType - это приложение / pdf
Когда я хочу просмотреть результат в веб-браузере (FF или Chrome), я получаю увидеть PDF-код вместо PDF.
%PDF-1.4 %���� 1 0 obj <>stream x��� and so on
Буду признателен за любую помощь, потому что это должно быть так просто, но я не могу его найти.
Возврат помещен в индекс ActionResult, и мне нужно, чтобы он был загружен прямо при нажатии на страницу (нет новой страницы с _blank)
Этоправильные данные, потому что когда я использую f12 в Chrome и нажимаю на сеть и данные, я получаю, чтобы просмотреть PDF в целом
Edit1:
[HttpGet]
public ActionResult Index(int Id)
{
InitMvcApplicationMenu();
...
var document = WebApi.LoadDocument(DocumentGuid.Value);
var byteArray = document.Data;
if (byteArray == null)
{
return null;
}
Stream stream = new MemoryStream(byteArray);
if (document == null)
{
return View("NoDocument");
}
Response.AppendHeader("content-disposition", "inline; filename=file.pdf");
return File(stream, document.ContentType, "document.pdf");
}
Таким образом, я получаю ошибку нетфайл найденКогда я использую его, как раньше, с
return File(document.Data, document.ContentType);
, я получаю байтовый массив как представление вместо pdf, но файл найден
Редактировать 2:
public ActionResult Index(int Id)
{
InitMvcApplicationMenu();
var entity = WebApi.LoadItem(Id);
var DocumentGuid = entity.ReportDocumentGUID;
if (DocumentGuid == Guid.Empty)
{
return View("NoDocument");
}
var document = WebApi.LoadItem(DocumentGuid.Value);
if (document == null)
{
return View("NoStatusReportDocument");
}
var cd = new ContentDisposition
{
FileName = document.Name,
Inline = true
};
Response.Headers.Add("Content-Disposition", cd.ToString());
return File(document.Data, document.ContentType);
}
У меня есть оболочка с несколькими регистрационными вкладками, и я хочу показать PDF-файл внутри вкладки, когда вкладка документа выбрана.
Это происходит здесь:
my.onHashChanged = function (e) {
var feature = jHash.val('feature');
my.loadTab(feature);
}
my.loadTab = function (feature) {
if (feature) {
$("#tabstrip-content").html("Loading...");
applicationUIModule.loadPartialView(feature, "Index", { Id: $("#Id").val()}
, function (data) {
}
, null
, $("#tabstrip-content")
);
}
}
my.onTabSelect = function (e) {
var feature = $(e.item).data("feature");
applicationUIModule.updateHash("feature", feature);
}