MVC Web アプリケーションがあり、(データベースから) 画像をページに表示しようとしていますが、成功しません。私が見つけたさまざまな例に従ってください。ページ「ImageTest.aspx」とハンドラー「ImageViewer.ashx」があります
ハンドラの内容は
<%@ WebHandler Language="C#" Class="ImageHandler" %>
using System.Web;
namespace Decri.WebClient.Views.Tablet
{
public class ImageViewer : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/jpeg";
context.Response.WriteFile("palmtree.jpg");
}
public bool IsReusable
{
get { return false; }
}
}
}
私の「ImageTest」ページには次のものが含まれています(データベースを使用する前に、基本的な機能を動作させようとしています)
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<h2>Image Test</h2>
<img src="ImageViewer.ashx?id=1" alt="Dynamic Image" />
</asp:Content>
ページに「赤い十字」の欠落した画像アイコンが表示され、デバッグ時に、ハンドラーの「ProcessRequest」に配置したブレークポイントでコードが停止しません。HTML ソースを見ると、コードは上記と同じです (Site.Master から取得した HTML が追加されています)。
ここでは、コントローラーのエントリが単純に保たれているコントローラーに基づいています (ハンドラーのコントローラーには何もありません。これは正しいと理解しています)。
public ActionResult ImageTest()
{
return View();
}
フォルダーに通常の画像があり、それを通常 (ハンドラーなしで) 参照すると、表示されないことに注意しました。それを CONTENT\IMAGES フォルダーに移動すると、移動します。ハンドラーを CONTENT\IMAGES フォルダーにコピーしようとしましたが、違いはありませんでした。
私は今、やや途方に暮れており、この問題を抱えて機能している誰かからのガイダンスをいただければ幸いです。