链接以直接写入应用程序中的 Web 文件夹绝不是一个好主意。我宁愿走创建 ashx 处理程序并流回图像的路线。您可以创建一个看起来像这样的文件(例如 getmyimage.ashx.cs):
using System;
using System.Web;
public class getmyimage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
Response.ContentType = "image/png";
Response.WriteFile("x:\myimages\test.png");
Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
getmyimage.ashx 将包含如下内容:
<% @ webhandler language="C#" class="getmyimage" %>
在此代码中,“x:\myimages\test.png”将是您希望流回浏览器的图像。您可以将参数添加到 getmyimage.ashx url 以指定应加载的图像。您还可以修改代码以动态生成图像或类似的东西。
然后,您可以指向图像 URL 中的“getmyimage.ashx”。所以你的 imageurl 看起来像这样:
Image1.ImageUrl = "getmyimage.ashx"
正如 Antonio 在评论中指出的那样,您需要查看所需的缓存选项类型并进行设置。默认行为是始终发回图像而不是缓存它。如果要缓存图像,则应查看以下帖子:
缓存 ASHX 图像响应
要直接映射到问题中的图像,您可以使用以下命令:
Image1.ImageUrl = "~/images/test.png"