Web サーバーでファイルをホストしています。エンド ユーザーがこのファイルのコピーを自分のマシンにダウンロードして開いて表示できるようにしたいと考えています。現在、foreach ループを介して入力されるリストがあり、ループを介した各反復は @Html.ActionLink("blahblahblah") です。アクションリンククリックでファイルをダウンロードする方法はありますか?
3 に答える
リンクをクリックするとファイルがダウンロードされます... ファイルが HTML の場合、ブラウザはそれをダウンロードしてブラウザに表示します。それ以外のもの (EXE など) の場合、ブラウザはそれをファイル システムにダウンロードします。
Html.ActionLink
を使用するのではなく、Url.Content
ダウンロードするファイルへの (アプリ相対) パスと共に使用します。 ActionLink
アプリ内の生ファイルではなく、コントローラー上のアクションを指す href を生成するためのものです。
それらのファイルは一般に公開されていますか? 制限等はありますか?それらのファイルへの単純な静的リンクを持たないのはなぜですか。
アクション リンクは、特定のコントローラーとアクションにルーティングされるリンクのみを作成します。
これらのファイルを保護する必要がある場合は、コントローラーの適切なアクションにコードを追加できます。このアクションは、ファイルからバイトを読み取り、応答でそれをダンプします。ブラウザーにヘッダーを追加して、MIME タイプを認識し、ダウンロード ダイアログを表示するか、それに応じてコンテンツをレンダリングする必要があります。
この項目にチェック を入れる ASP.NET MVC で表示/ダウンロードするファイルを返す