ASP.Net Razor view — отображение байтовых данных документа в пределах представления

#c# #asp.net-mvc #razor

#c# #asp.net-mvc #razor

Вопрос:

У меня есть razor view, а в viewmodel у меня есть IEnumerable документов.

Что я хочу сделать, так это получить byte массив для документа, а затем отобразить его в представлении razor.

 foreach (var document in Model.documents)
{
  <div src="@Url.Action("GetDocument", "Document", new {Id = document.Id})"/>
}
  

Выше приведено то, что у меня есть в представлении, а ниже приведен код для GetDocument метода:

 public void GetDocument(int id)
{
   var document = _documentRepository.Get(id);
   Response.ContentType = document.ContentType;
   Response.Write(document.data);
}
  

Возможно ли то, чего я пытаюсь достичь?

Комментарии:

1. Какой документ вы пытаетесь отобразить? Если это только pdf, тогда вы можете попробовать использовать тег <frame></frame> или <embed></embed> вместо <div></div> . Если вы хотите отображать другие типы файлов, то я думаю, вам нужен какой-нибудь сторонний инструмент для просмотра документов.

2. Я рассматривал рендеринг .txt но пока я буду использовать PDF-файл и посмотрю, смогу ли я заставить его отображаться. Спасибо за информацию.

3. если я правильно понимаю, вы хотите отобразить текстовый файл на странице razor?

4. Это может быть любой документ, PDF, .doc, .docx, .txt. На данный момент я вроде как сдался и подошел к этому по-другому.