ASP.NET Razor Pagesを使用して、ブラウザにファイルをダウンロードしようとしています。ページ(html)から、次のようなリンクを使用すると正常に機能します。
href="/DownloadableFiles/testB.csv" download="newname">Download Link
ただし、コードビハインドまたはViewModel
からダウンロードを開始して、ファイル名が何であるかを動的にできるようにしたいので、最初にファイルを検査する必要があります。
ASP.NET MVCコア(RazorPagesではない)では、次を使用してコードでファイルをダウンロードできます。
return File(memory, GetContentType(path), Path.GetFileName(path));
だが return File
はRazorページではサポートされていません。
pitaridisは正しいです、return File
はRazorPagesに存在します、名前空間が欠落していたに違いありません。これにより、CodeBehindからファイルがダウンロードされます。
このページの送信ボタンは次のとおりです。
<button type="submit" asp-page-handler="DownloadFile" style="width:75px"
class="cancel"> Download </button>
PageModel(コードビハインド):
public ActionResult OnPostDownloadFile()
{
return File("/DownloadableFiles/TestFile34.csv", "application/octet-stream",
"NewName34.csv");
}
注:/ DownloadableFilesはwwwrootのサブフォルダーにあります