Как использовать ASP.net MVC 3 FileStreamResult для возврата текста, сгенерированного в коде .net? - PullRequest
1 голос
/ 23 февраля 2012

В веб-формах ASP.net я писал код, чтобы браузер загружал таблицу в Excel, устанавливая тип содержимого «application / vnd.ms-excel», и это работало очень хорошо.Теперь я пытаюсь найти лучший способ сделать это в .net.

Я написал некоторый код .net, который выглядит следующим образом:

public FileStreamResult TaskforceDetailExcelData(string taskforceIdsCommaSeparated)
{
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    System.IO.StreamWriter sw = new System.IO.StreamWriter(ms);
    sw.Write("<html><head></head><body><table>...</table></body></html>");
    return new FileStreamResult(ms, "application/vnd.ms-excel");
}

В результате получается, чтоВ браузере я получаю следующее:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>

Что мне нужно сделать, чтобы доставить мою таблицу в браузер с типом ответа excel?

1 Ответ

0 голосов
/ 23 февраля 2012

попробуйте этот код.(не проверено, но похоже на то, что я делаю с типом mime text / csv)

public FileResult Export()
{
  var csv = "<html><head></head><body><table>...</table></body></html>";
  System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
  byte[] result = encoding.GetBytes(csv);
  return File(result, "application/vnd.ms-excel", "segnalazioni.csv");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...