我有一个 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 文件夹中,这没有任何区别。
我现在有点不知所措,如果遇到此问题并使其正常工作,我将不胜感激。