Как создать ссылку для загрузки файла в asp.net MVC? - PullRequest
3 голосов
/ 13 апреля 2009

Я тестирую Doddle Report , чтобы сгенерировать несколько отчетов из объекта IEnumerable. Мне нужно создать ссылку, как это

PDF - http://myserver.com/reports/ProductsReport.pdf

Вопрос в том, как мне это сделать?

Ru Прекратить использование отчета Doddle и сгенерировать del Excel в формате XML.

Ответы [ 4 ]

17 голосов
/ 13 апреля 2009

Просмотрите этот учебник , чтобы получить другой результат действия.

Платформа ASP.NET MVC поддерживает несколько типов результатов действий, включая:

  • ViewResult - представляет HTML и разметки.
  • EmptyResult - не представляет результата.
  • RedirectResult - представляет перенаправление на новый URL.
  • JsonResult - представляет собой JavaScript Результат обозначения объекта, который может быть используется в приложении AJAX.
  • JavaScriptResult - представляет собой JavaScript скрипт.
  • ContentResult - представляет текст результат.
  • FileContentResult - представляет загружаемый файл (с двоичным содержание).
  • FilePathResult - Представляет загружаемый файл путем ).
  • FileStreamResult - представляет загружаемый файл (с файлом поток).
5 голосов
/ 01 сентября 2014

Я сделал нечто похожее на то, что вы хотите в MVC 5, и я использовал FilePathResult, как сказал J.W.

cshtml:

@Html.ActionLink("Download Here", "DownloadExampleFiles", "Product", new { fileName = "variation-example" }, new { @target = "_blank" })

ProductController:

public FilePathResult DownloadExampleFiles(string fileName)
{
    return new FilePathResult(string.Format(@"~\Files\{0}", fileName + ".txt"), "text/plain");
}

Скачать файл кажется очень глупым / легким, однако, для новичков в MVC это не так. Этот подход кажется лучшим при использовании MVC.

PS: я привел .txt просто в качестве примера. Вы должны сделать то, что вас интересует, чтобы получить конкретный файл.

0 голосов
/ 13 апреля 2009

Нечто подобное может быть:

<h2>List Of Reports</h2>
<ul>
    <% foreach (var report in Model){ %>
        <li><a href="<%= Html.BuildUrlFromExpression<ReportController>(r => r.Reports(report.Filename)) %>"><%=report.Filename %></a></li>
    <% } %>
</ul>

Возможно, есть более короткий путь, но это работает.

0 голосов
/ 13 апреля 2009

AFAIK, в MVC нет ничего особенного. Создайте LinkButton в своей форме с помощью обработчика, который генерирует файл PDF, а затем перенаправьте на созданный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...