[解決済み] ASP.NET MVCコントローラは、Imageを返すことができますか?
2022-03-20 20:45:29
質問
画像アセットを返すだけのControllerは作れますか?
以下のようなURLがリクエストされるたびに、このロジックをコントローラにルーティングしたいのですが。
www.mywebsite.com/resource/image/topbanner
コントローラが検索するのは
topbanner.png
で、その画像を直接クライアントに送り返す。
このような例では、Viewを作成しなければなりませんが、私はViewを使いたくありません。私はViewを使いたくありません。Controllerだけですべてを行いたいのです。
これは可能ですか?
どのように解決するのですか?
ベースコントローラのFileメソッドを使用します。
public ActionResult Image(string id)
{
var dir = Server.MapPath("/Images");
var path = Path.Combine(dir, id + ".jpg"); //validate the path for security or use other means to generate the path.
return base.File(path, "image/jpeg");
}
注意点として、これはかなり効率的なようです。コントローラから画像を要求するテストをしてみました (
http://localhost/MyController/Image/MyImage
) と、直接の URL (
http://localhost/Images/MyImage.jpg
)となり、その結果は
- MVCです。 7.6ミリ秒/写真
- ダイレクトに 6.7ミリ秒/写真
注:これは1回のリクエストの平均時間です。平均値はローカルマシン上で何千ものリクエストを行うことで算出されたため、合計値にはネットワークの遅延や帯域幅の問題は含まれていないはずです。
関連
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
[解決済み] div' コンテナに合わせて画像を自動リサイズするにはどうしたらいいですか?
-
[解決済み] div 内の画像を縦に並べる方法
-
[解決済み] Markdownで画像サイズを変更する
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NET MVCでenumからドロップダウンリストを作成するにはどうすればよいですか?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] ASP.NET MVCでビューをコンパイルする
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み】ASP.NET MVCでファイルを表示/ダウンロードに戻す場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
.NET 6:.NETのロギングコンポーネントlog4netを使用する。
-
NET6新機能 - 暗黙の名前空間参照
-
NETガベージコレクション GC診断ツール dotnet-gcmon 使用方法
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
デバッグエラー蓄積
-
ConfigurationManagerのGetSection()メソッドです。
-
[解決済み] ASP.NETの新しいセキュリティ脆弱性の深刻度と回避方法について教えてください。
-
[解決済み] Server.UrlEncode vs. HttpUtility.UrlEncode
-
[解決済み] パネルまたはPlaceHolderの使用
-
[解決済み] ASP.NET。HTTP エラー 500.19 - 内部サーバー エラー 0x8007000d